Django 将值添加到外键

Nic*_*k B 5 python django view models

我正在尝试为用户设置一种“观看”某些项目的方法(即将项目添加到包含其他用户的其他项目的列表中):

class WatchList(models.Model):
    user = models.ForeignKey(User)

class Thing(models.Model):
    watchlist = models.ForeignKey(WatchList, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

如何Thing向用户添加 a WatchList

>>> from myapp.models import Thing
>>> z = get_object_or_404(Thing, pk=1)
>>> a = z.watchlist.add(user="SomeUser")

  AttributeError: 'NoneType' object has no attribute 'add'
Run Code Online (Sandbox Code Playgroud)

如何将项目添加到监视列表?和/或这是设置我的模型字段的适当方法吗?感谢您的任何想法!

Mar*_*ers 4

z.watchlist是参考本身,而不是关系经理。只需分配:

z.watchlist = WatchList.objects.get(user__name='SomeUser')
Run Code Online (Sandbox Code Playgroud)

请注意,这假设WatchList每个用户只有一个。