django-photologue
을 기반으로 사용자가 자신의 갤러리를 보유하고 관리자의 갤러리 소유자를 파견하고 싶습니다.인라인을 사용하지 않고 관리자에게 필드를 추가하는 방법은 무엇입니까?
Inlines
관리 페이지 하단에 추가 필드 블록을 제공하십시오. 나는 하나의 필드가 user
이고 관리 페이지의 메인 블록, 즉 Gallery
모델의 다른 필드에 표시되기를 원합니다.
fields = ('user',) # also tried to add to fieldsets
def user(self, instance):
return instance.galleryextended.user
을했지만 작동하지 않습니다
# models
from photologue.models import Gallery
from profiles.models import UserProfile
class GalleryExtended(models.Model):
gallery = models.OneToOneField(Gallery)
user = models.ForeignKey(UserProfile, verbose_name=_('user'), on_delete=models.CASCADE)
def __str__(self):
return self.gallery.title
# admin
from django import forms
from django.contrib import admin
from photologue.admin import GalleryAdmin as GalleryAdminDefault
from photologue.models import Gallery
from .models import GalleryExtended
class InlineGalleryExtendedAdmin(admin.TabularInline):
model = GalleryExtended
class GalleryAdminForm(forms.ModelForm):
class Meta:
model = Gallery
exclude = ('description',)
class GalleryAdmin(GalleryAdminDefault):
form = GalleryAdminForm
save_on_top = True
inlines = [InlineGalleryExtendedAdmin] # Do not want to use inlines
나는
class GalleryAdmin
에 추가했습니다.
list_display = ('user',)
이 필드를 편집 가능하게하고 싶습니다. – TitanFighter
그런 다음 'user' 필드를 추가하고'save()'를 변경하십시오. 그리고'def user (self, instance) :'당신은 formfield가 아니라'modieldield'를 제거 할 수 있습니다. – dd42