我在Django admin中尝试将反向相关的GenericForeignKey内联表单添加到模型时遇到错误。特定错误消息指出:“'EventsRaw'没有指向'UserEvents'的ForeignKey。”
以下是我需要的帮助:
1.在Django管理面板中显示UserEvents。
1.当导航到管理 Jmeter 板中的UserEvents页面时,我希望看到所有反向相关的EventsRaw对象的列表。
提前感谢您的帮助!
# models.py
from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
class UserEvents(models.Model):
content_type = models.ForeignKey(
ContentType, on_delete=models.CASCADE, null=True, blank=True
)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey("content_type", "object_id")
class EventsRaw(models.Model):
raw_message = models.JSONField()
# For Creating test data
def create_events_raw():
events_raw = EventsRaw()
events_raw.raw_message = "test"
events_raw.save()
user_event = UserEvents()
user_event.content_object = events_raw
user_event.save()
# admin.py
from django.contrib import admin
from .models import UserEvents, EventsRaw
class EventsRawInline(admin.TabularInline):
model = EventsRaw
@admin.register(UserEvents)
class User_EventsAdmin(admin.ModelAdmin):
inlines = (EventsRawInline,)
1条答案
按热度按时间4smxwvx51#
你可以反向添加一个**
GenericRelation
**[Django-doc],所以:至于管理员,你可以在
TabularInline
上使用**GenericTabularInline
**[Django-doc]:这将生成一个内容类型已填充的查询。但是,虽然
GenericForeignKey
确实是可能的,但它们通常会引入新的复杂性,因此通常不是一个好主意。注意:通常Django模型的名字是 * 单数 *,所以是
UserEvent
而不是UserEvents
。