问题
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