微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

admin.py 文件中的 Django TabularInline 错误

如何解决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/',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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。