型号

class Beer(models.Model):
    pass

class Salas(models.Model):
    name =  models.CharField(max_length=20)
    beers =     models.ManyToManyField('Beer', blank=True)

视图

beer = Beer.objects.get(user=user)
id_sala = request.GET['id_sala']
sala = get_object_or_404(Salas, id=id_sala)


if beer.salas_set.filter(nombre=sala):
# if beer.objects.filter(sitios__id=beer).exists():
    sala.beers.remove(beer)

else:
    sala.beers.add(beer)

我想看看啤wine 和沙拉有没有关系,这个怎么做??

推荐答案

您的解决方案可能会有问题,因为Salas的名称不是唯一的.所以,如果你用沙拉的名字在过滤上期望找到一个而且只有一个沙拉,那可能不会发生.

我建议你做以下事情:

if sala in beer.salas_set.all():
    #do stuff:
else:
    # do other stuff

这样,beer.salas_set.all()将返回一个QuerySet,您可以在其中使用"in"关键字判断特定对象是否存在.

Django相关问答推荐

对象Django API中的对象

如何在对接合成时创建两个Postgres数据库?

Djnago admin中 Select 字段的自定义查询

DRF中没有参数的视图的警告-壮观

在Django中使用Generil.ListView类时,分页不起作用

Django没有显示变量

Django 中主键的隐式 UUID 自动字段

为什么 django 不能相互识别 2 个路径转换器?

防止 django 将_id附加到外键字段

如何将我的上下文变量传递给 Django 中的 javascript 文件?

如何在 Django 中触发 500 错误?

保存前向 ModelForm 对象添加数据

django-rest-framework 接受 JSON 数据?

Django:DoesNotExist从何而来?

AUTH_USER_MODEL 指的是尚未安装和创建的模型 .. AbstractUser 模型无法登录

为什么我的 Django 单元测试不知道安装了 MessageMiddleware?

为整个结果集向 Django Rest Framework 结果添加额外数据

Django - 保存新对象时如何获取 self.id?

AttributeError:ManyRelatedManager对象没有add属性?

防止 django 管理员转义 html