namhj 2019. 12. 9. 18:48
반응형

============ admin.py ============

<< set admin panel looks, add column, add link, search field etc.. >>
from django.contrib import admin
from . import models

@admin.register(models.Image)
class ImageAdmin(admin.ModelAdmin):
    #add links
    list_display_links = (
        'location',
        'caption'
    )

    #add search var
    search_fields = (
        'location',
    )

    #add filter
    list_filter = (
        'location',
        'created_at',
    )

    #set display columns
    list_display = (
        'file',
        'location',
        'caption',
        'created_at',
        'updated_at'
    )

====== models. py ======

<<set attribute looks, #set display row>>

class Image(TimeStampedModel):

    """ Image Model """

    file = models.ImageField()
    location = models.CharField(max_length=140)
    caption = models.TextField()
    creator = models.ForeignKey(user_models.User, on_delete=models.CASCADE)
    

    #set attribute looks
    def __str__(self) :
        return '{} - {}'.format(self.location, self.caption)

====== users > admin.py ======

<<set users attirbute panel, add on field set. >>
@admin.register(User)
class UserAdmin(auth_admin.UserAdmin):

    form = UserChangeForm
    add_form = UserCreationForm
    #add field on User 
    fieldsets = (("User", {"fields": ("name", "followers", "following")}),) + auth_admin.UserAdmin.fieldsets
    list_display = ["username", "name", "is_superuser"]
    search_fields = ["name"]

반응형