由于模型中的唯一约束字段,并且模型中未设置on_delete = CASCADE,因此PUT / PATCH无法更新

时间:2019-03-14 05:41:34

标签: django python-3.x django-models django-rest-framework django-serializer

我的模特:

class news_ids(models.Model):
    status = StatusField()

class news_headlines(models.Model):
    newsId = models.ForeignKey(news_ids, related_name = 'news', on_delete=models.CASCADE)
    lang_code=LanguageField()
    headline=models.CharField(max_length=100,unique=True)

我的序列化器:

class NewsSerializer(QueryFieldsMixin,serializers.ModelSerializer):
    class Meta:
        model=news_headlines
        fields=('lang_code','headline')

class NewsIDSerializer(QueryFieldsMixin,serializers.ModelSerializer):
   news = NewsSerializer(many=True)
   class Meta:
        model = news_ids
        fields = ('id','news','status','default_language')

   def create(self, validated_data):
       """Create function to post the data"""

   def update(self, instance, validated_data):
       """ Update function to put/patch the data"""
  1. 当我尝试使用put / patch编辑lang_code时,我收到一个错误消息,标题字段已经存在。
  2. 即使在模型中指定on_delete = CASCADE之后,它也不会影响数据库中的迁移和表

如何在Django中实现这一目标?

0 个答案:

没有答案
相关问题