jar*_*fly 5 python django-queryset
我正在 django 中创建一个应用程序,我遇到了下一个问题:
我使用queryset下一个命令行:
queryset = Persons.objects.all()
Run Code Online (Sandbox Code Playgroud)
假设结果列表是下一个:['x', 'y', 'z']
我想删除x该列表中的一个元素,以便生成的列表为:['y', 'z']。
我不想删除该元素x。所以我无法使用该命令item.delete()。
如果我的模型是:
class A(models.Model):
att1= models.ForeignKey(B)
att2 = models.CharField(max_length=128)
...
class B(models.Model):
ident = models.CharField(max_length=128)
...
Run Code Online (Sandbox Code Playgroud)
如何获取与 A 和 A.att2 value == 'test' 相关的 B 对象的查询集???
我认为你需要设置 related_name:
class A(models.Model):
att1= models.ForeignKey(B, related_name='A_model')
att2 = models.CharField(max_length=128)
class B(models.Model):
ident = models.CharField(max_length=128)
Run Code Online (Sandbox Code Playgroud)
像这样查询:
B.objects.filter(A_model__att2="test")
Run Code Online (Sandbox Code Playgroud)
这是我在 stackoverflow 上的第一个答案希望这对你有帮助
如果您不想设置 related_name ,请尝试:
B.A_set.filter(att2="test")
Run Code Online (Sandbox Code Playgroud)