Как отобразить элемент StackedInline из модели в Django?
я хочу получить значение моего поля "is_verified" из модели aStakedInline моей модели Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'words', 'date', 'is_verified')
list_filter = ('date', 'author')
def is_verified(self, obj):
# HERE MY UNKNOWN CODE TO GET IS_VERIFIED VALUE FROM VerifiedPost Model
def words(self, obj):
return len(obj.content.split())
class AccountInline(admin.StackedInline):
model = Profile
can_delete = False
verbose_name_plural = 'Profiles'
class PostInline(admin.StackedInline):
model = VerifiedPost
can_delete = False
verbose_name_plural = 'Verified'
models.py
class Post(models.Model):
...
class VerifiedPost(models.Model):
post = models.OneToOneField(Post, on_delete=models.CASCADE)
is_verified = models.BooleanField(default=False)
Если кто-нибудь может мне помочь
На мой взгляд, ваше моделирование неверно. У вас должна быть только модель Post, затем добавьте к ней поле is_verified
. Если вы хотите разделить их, чтобы они были привязаны к конкретным разрешениям, используйте ORM от Django:
posts = Post.objects.filter(is_verified=False)
verified_posts = Post.objects.filter(is_verified=True)
Теперь они разделены. Но если вы все еще хотите продолжать делать это по-своему, попробуйте следующее:
Я не знаю, что такое obj
, поэтому:
Если obj является VerifiedPost
экземпляром: return obj.is_verified
Если obj является Post
экземпляром:
verified_post = obj.verifiedpost
if verified_post:
return verified_post.is_verified