0
データベース内のForeignKeyオブジェクトを変更または更新するためのボタンがテンプレートにあります。Django。 ForeignKeyオブジェクトが更新/変更されない
ただし、更新する必要があるオブジェクトは変更されません。
データベースのForeignKeyオブジェクトを更新するにはどうすればよいですか?
Views.py
if 'order' in request.POST:
status_change = request.POST['order']
order = Order.objects.get(pk = status_change)
if order.orderstatus.ORDERSTATUS == 'Received':
order.orderstatus.ORDERSTATUS='Requested'
order.save()
elif order.orderstatus.ORDERSTATUS == 'Requested':
order.orderstatus.ORDERSTATUS = 'Completed'
order.save()
elif order.orderstatus.ORDERSTATUS == 'Completed':
order.orderstatus.ORDERSTATUS = 'Canceled'
order.save()
else:
order.orderstatus.ORDERSTATUS = 'Received'
order.save()
Models.py
RECEIVED = 'Received'
REQUESTED = 'Requested'
CANCELED = 'Canceled'
COMPLETED = 'Completed'
ORDER_STATUS = (
(RECEIVED , 'Received'),
(REQUESTED, 'Requested'),
(CANCELED, 'Canceled'),
(COMPLETED, 'Completed'),
)
class Order(models.Model):
orderstatus = models.OneToOneField(OrderStatus, on_delete=models.CASCADE)
class OrderStatus(models.Model):
ORDERSTATUS = models.CharField(
max_length = 10,
choices = ORDER_STATUS,
default = RECIEVED,
)
本当にわかりません最初はポイントは何ですか? –
いつ、誰が変更を加えたのかを把握したかったのです。 OrderStatusにはさらにフィールドがあります。変更のログを管理するためのよりよい方法はありますか? – smchae
あるかもしれませんが、私はこのパターンも厳密に使用します。 –