所以我的模型定义如下:
class Subscriber(models.Model):
client_id = models.IntegerField()
user_id = models.IntegerField()
channel = models.ForeignKey(to=Channel, related_name='channel_subscribers')
class Meta:
unique_together = ('client_id', 'channel')
,此模型的序列化程序如下:
class SubscriberSerializer(serializers.ModelSerializer):
class Meta:
model = Subscriber
fields = ('id', 'client_id', 'user_id', 'channel')
所以
POST
和client_id=1
以及channel_id=1
向订阅者发出user_id=1
个请求。这导致创建Subscriber
,例如id=1
step 1
中创建的订阅者的user_id。PUT
client_id=1
user_id=2
channel_id=1
Subscriber
请求id=1
client_id
channel_id
Subscriber
PUT
和id=1
的组合不是唯一的,这是Subscriber
模型中的约束。 我希望当我使用Subscriber
发出id=1
请求时,序列化程序会实际检查除product_qty
之外的所有onchange_hitung_kuota()
模型的约束def onchange_hitung_kuota(self, cr, uid, ids, product_qty, prod_qtys)
}。
django rest框架是否提供了满足此条件的任何内容。或者我必须为创建和更新编写不同的序列化程序,我认为这是最丑陋的解决方案。
如果模型的结构无法更改,那么这个问题的最佳解决方案是什么。