현재 사용자를 자동으로 채우는 Django Admin 기능
import datetime
from django.contrib.auth.models import User
from django.db import models
class Entry(models.Model):
title = models.CharField(max_length=250)
slug = models.SlugField()
pub_date = models.DateTimeField(default=datetime.datetime.now)
author = models.ForeignKey(User, related_name='entries')
summary = models.TextField(blank=True)
body = models.TextField()
class Meta:
get_latest_by = 'pub_date'
ordering = ('-pub_date',)
verbose_name_plural = 'entries'
def __unicode__(self):
return self.title
def get_absolute_url(self):
return "/weblog/%s/%s/" % (self.pub_date.strftime("%Y/%b/%d"),
self.slug)
admin.py
from django.contrib import admin
from blog.models import Entry
class EntryAdmin(admin.ModelAdmin):
exclude = ('author',)
list_display = ('title', 'pub_date', 'author')
prepopulated_fields = { 'slug': ['title'] }
def has_change_permission(self, request, obj=None):
has_class_permission = super(EntryAdmin, self).has_change_permission(request, obj)
if not has_class_permission:
return False
if obj is not None and not request.user.is_superuser and request.user.id != obj.author.id:
return False
return True
def queryset(self, request):
if request.user.is_superuser:
return Entry.objects.all()
return Entry.objects.filter(author=request.user)
def save_model(self, request, obj, form, change):
if not change:
obj.author = request.user
obj.save()
admin.site.register(Entry, EntryAdmin)
참조 링크:https://www.b-list.org/weblog/2008/dec/24/admin/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
「은행의 자산 운용 상품 관리 웹 시스템」의 소개시스템 개요 이 시스템은 중국의 각 은행 홈페이지에 게재 된 자산 운용 상품의 발행시기, 발행 지점 · 금리 등의 정보를 하나의 웹 사이트에 통합 사용자가 의견과 판매 정보를 쿼리 할 수 있습니다. 시스템을 도입하는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.