Jack022
Jack022

Reputation: 1297

Django model overwrites a record on my database instead of adding a new one

I have the following model:

class myModel(models.Model):
    item_id = models.AutoField(primary_key=True)
    amount = models.FloatField(default=0)
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True, editable=False)
    created = models.DateTimeField('Created', auto_now=True)

    def save(self): # ALL the signature
        super(myModel, self).save()

And from a view, i'm trying to save some data to my database:

model = myModel()
model.user = request.user
model.amount = amount

When i open my database, i only see one record. Every time i try to add a new record, that record is overwritten with a new one. Instead, there should be one record every time i add some data, of course. Can someone help me find what am i doing wrong, please?

Upvotes: 0

Views: 56

Answers (2)

itjuba
itjuba

Reputation: 528

try this :


user = models.ForeignKey(User, on_delete=models.CASCADE, editable=False)

remove null and blank from the user field

Upvotes: 0

Manan M.
Manan M.

Reputation: 1394

For create record please use create() as below...

new_obj = myModel.objects.create(user=request.user, amount=amount)

Upvotes: 2

Related Questions