python - admin.py 文件中的 Django TabularInline 错误
问题描述
嘿伙计们,我一直在尝试在 django admin.py 文件中创建我的模型的内联 TabularInline 视图。我面临一个问题,我在下面的代码中收到以下错误。
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/brian/Desktop/django react learning /site/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
fn(*args, **kwargs)
File "/home/brian/Desktop/django react learning /site/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 118, in inner_run
self.check(display_num_errors=True)
File "/home/brian/Desktop/django react learning /site/lib/python3.8/site-packages/django/core/management/base.py", line 442, in check
raise SystemCheckError(msg)
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
ERRORS:
<class 'tweets.admin.TweetlikeAdmin'>: (admin.E202) 'tweets.Tweet' has no ForeignKey to 'tweets.Tweet'.
所以一开始我以为我错过了一些东西,但是当我尝试改变它时,我得到了更多的错误,这真的没有意义。所以我确保与您分享我的 models.py 文件,我的 admin.py 文件是我的 models.py 文件
class Tweetlike(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
tweet = models.ForeignKey('Tweet',on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True)
class Tweet(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE) #this means that one user can own tweets
likes = models.ManyToManyField(User,related_name='tweet_user', blank=True, through=Tweetlike)
content = models.TextField(blank=True,null=True)
timestamp = models.DateTimeField(auto_now_add=True)
image = models.FileField(upload_to='images/',blank=True,null=True)
def __str__(self):
return self.content
最后是 admin.py 文件。这是我尝试运行服务器时错误的来源
class TweetlikeAdmin(admin.TabularInline):
model = Tweet
class TweetAdmin(admin.ModelAdmin):
inlines = [TweetlikeAdmin,]
list_display = ['__str__','user']
search_fields = ['content','user__username', 'user__email']
class Meta:
model = Tweet
admin.site.register(Tweet,TweetAdmin)
解决方案
你没有设置正确的模型,你让他们都指向Tweet
模型。更改内联模型;
class TweetlikeAdmin(admin.TabularInline):
model = Tweetlike
推荐阅读
- python - 获取组内的最大日期并用最大日期填充组的 NaN 行
- postgresql - 如何混淆 PostgreSQL 的 SQL 代码?
- excel - 如何使用由空白列组成的 VBA 代码对表格进行排序?
- influxdb - Influx Flux 中的三元算子
- jenkins - Jenkins(向破坏构建的个人发送单独的电子邮件)
- netsuite - Netsuite / Freemarker - 按行拆分项目描述不起作用
- android-studio - Android studio 3.4 不显示旧版本的预览设备
- javascript - 选择/取消选择元素时替换画布img
- mysql - 如何将子查询替换为连接查询
- c# - 你可以在构造函数中实例化另一个类吗?