How can i update django foreignkey?

杀马特。学长 韩版系。学妹 提交于 2020-01-07 09:21:56

问题


I have a model OrderItem and it has a foreignkey order. I also have a function that creates an OrderItem like so,

OrderItem.objects.create(shopping_id=_shopping_id(request),
                                          quantity=quantity,
                                          item=i,
                                          created_by=anon_user,
                                          modified_by=anon_user)

As you can see i have not included order because i have failed to understand how i can be able to do it. i get the error order_items.order_id may not be NULL

here is my model OrderItem

class OrderItem(SmartModel):
    shopping_id = models.CharField(max_length=50,db_index=True)
    quantity = models.IntegerField(default=0)
    item = models.ForeignKey(Item)
    order = models.ForeignKey(Order)

Any kind of help is appreciated.


回答1:


You have to check if it exist if no create it and then create OrderItem object. Code should look like this:

     try:
         order = Order.objects.get(pk=order_id)
     except:
           order = Order.objects.create(name=name)

     OrderItem.objects.create(shopping_id=_shopping_id(request),
                                      quantity=quantity,
                                      item=i,
                                      order=order
                                      created_by=anon_user,
                                      modified_by=anon_user)



回答2:


Why is adding order any different from adding item? They're both ForeignKeys, and in both cases you simply pass the relevant object as the keyword argument.




回答3:


Does this not work?

order, created = Order.objects.get_or_create(...)

then

OrderItem.objects.create(order=order, shopping_id=_shopping_id(request),
                                          quantity=quantity,
                                          item=i,
                                          created_by=anon_user,
                                          modified_by=anon_user)


来源:https://stackoverflow.com/questions/14899334/how-can-i-update-django-foreignkey

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!