Как добавить Tabular Inline на страницу пользователя по умолчанию в Django, когда другая модель имеет отношение "многие ко многим" с моделью пользователя

Я искал решения этой проблемы в Интернете, но так и не смог найти ответ на этот вопрос.

Вот мои модели:

class Website(models.Model):
    url = models.URLField()
    users = models.ManyToManyField(User)

    def __str__(self) -> str:
        return str(self.url)


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField(null=True, blank=True)
    nickname = models.CharField(blank=True, null=True, max_length=50)
    location = models.CharField(blank=True, null=True, max_length=50)
    weight = models.DecimalField(null=True, max_digits=5, decimal_places=2)
    
    def __str__(self) -> str:
        return str(self.user)

Как вы можете видеть, одно поле в модели Website имеет отношение "ManyToMany" с моделью User по умолчанию в django. Поэтому мне интересно, как я могу изменить или увидеть список сайтов, которые есть у пользователя, на странице/разделе пользователя.

  • Я пробовал сделать это, но ничего не вышло:
class WebsiteInline(admin.TabularInline):
    model = Website
    extra = 1


class UserAdmin(admin.ModelAdmin):
    inlines = [WebsiteInline]
    


admin.site.unregister(User)
admin.site.register(User, UserAdmin)

и вот ошибка: <class 'accounts.admin.WebsiteInline'>: (admin.E202) 'accounts.Website' has no ForeignKey to 'auth.User'.

Вернуться на верх