0
工作,我有两个型号:Feed
和User
Django的REST框架:如何处理列表
一个User
可以创建一个Feed
用POST方法。其他User
可以看到此提要,并且每次用户看到提要时,提要对象都应更新并将用户的ID保存在'seen_by_users'中。
class User(models.Model):
registered = models.DateTimeField(auto_now_add=True)
last_login = models.DateTimeField(auto_now=True)
class Feed(models.Model):
owner = models.ForeignKey(User, blank=False, related_name='feed_owner') # required
feed_message = models.CharField(max_length=255, blank=False, default='')
created = models.DateTimeField(auto_now_add=True, blank=False) # required
seen_by_users = models.ForeignKey(User, blank=True, null=True, related_name='seen_by_users')
在串行
我:
class FeedSerializer(serializers.ModelSerializer):
class Meta:
model = Feed
fields = ('id', 'owner', 'feed_message', 'created', 'seen_by_users')
def create(self, validated_data):
feed = Feed.objects.create(**validated_data)
return feed
def update(self, instance, validated_data):
instance.seen_by_users = validated_data.get('seen_by_users', instance.seen_by_users)
instance.save()
return instance
现在,我可以只保存一个用户ID seen_by_users
但是, 我怎么能更改或编辑我的模型或串行器添加用户的数组到seen_by_users
。当我更新Feed
时它应该工作。
我在Django Rest Framework 3.0中使用Django 1.7.1。
只是一个友好的抬起头,_usually_你的'related_name'与模型上的字段名称不匹配。 'User.seen_feeds'可能比'User.seen_by_users'更有意义(这很有道理,就像'Feed.seen_by_users')。 –
对不起,我不明白你的意思。我找不到'Users.seen_by_users'。 –
另外,'Feed.seen_by_users'字段应该可能是[多对多关系](https://docs.djangoproject.com/en/stable/topics/db/examples/many_to_many/)而不是一个-太多。以下是[模型字段上的'related_name'属性]的参考(http://stackoverflow.com/q/2642613/359284)。 –