0

Hey guys i have been trying to create an inline TabularInline view of the my model in the django admin.py file. I am facing an issue where i am getting the following error in the code below.

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'.

So at first I thought I had missed something but when I tried changing it I got more errors which really don't make sense. so I made sure I share with you my models.py file and my admin.py file here is my models.py file

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

and lastly here is the admin.py file. this is where the error is coming from when i tried running the server

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)
kaybrian
  • 61
  • 1
  • 6

1 Answers1

1

You've not set the correct model, you've got them both pointing at the Tweet model. Change the inline model;

class TweetlikeAdmin(admin.TabularInline):
    model = Tweetlike
markwalker_
  • 12,078
  • 7
  • 62
  • 99