Mod*_*esq 4 django django-models django-admin
我有2个配置文件模型.我正在创建一个"参加者"对象.如何在2个配置文件之间进行过滤?
class Profile1(models.Model):
user = models.ForeignKey(User, null=True, unique=True)
class Profile2(models.Model):
user = models.ForeignKey(User, null=True, unique=True)
class Attendee(models.Model):
event = models.ForeignKey(Event)
# This filters through everything... How do I filter down just to the 2 profile objects?
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
profile = generic.GenericForeignKey('content_type', 'object_id')
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
由于ContentType模型有三个字段app_label,model和name.因此,您可以轻松过滤这些字段.
attendees = Attendee.objects.filter(content_type__model = 'Profile1')
Run Code Online (Sandbox Code Playgroud)
我会去
from django.contrib.contenttypes.models import ContentType
...
Attendee.objects.filter(
content_type=ContentType.objects.get_for_model(Profile1))
Run Code Online (Sandbox Code Playgroud)
以避免重构类名后比较字符串和错误。
| 归档时间: |
|
| 查看次数: |
3454 次 |
| 最近记录: |