我正在制作一个应用程序来添加网站中的俱乐部。这是我的model.py文件
from django.db import models
from stdimage import StdImageField
# Create your models here.
class Club(models.Model):
ClubName = models.CharField(max_length=200)
ClubLogo = StdImageField(upload_to='club_logo', variations={'thumbnail':(150, 200, True)})
ClubDetails = models.TextField()
ClubStartDate = models.DateField()
def __str__(self):
return self.ClubName
class Notice(models.Model):
NOTICE = 'NOTICE'
UPDATES = 'UPDATES'
EVENTS = 'EVENTS'
NOTICE_IN_CHOICES = (
(NOTICE, 'Notice'),
(UPDATES, 'Updates'),
(EVENTS, 'Events'),)
NoticeType = models.CharField(
max_length=20, choices=NOTICE_IN_CHOICES, default=NOTICE)
NoticeTag = models.CharField(max_length=30)
NoticeStartDate = models.DateField(auto_now_add=True)
NoticeEndDate = models.DateField()
NoticeFile = models.FileField(default='#', upload_to='notice/%Y/%m/%d')
NoticeContent = models.TextField(default='NA')
NoticeClub = models.ForeignKey(Club)
def __str__(self):
return self.NoticeTag
class Members(models.Model):
MemeberName = models.CharField(max_length=200)
MemberImage = StdImageField(upload_to='member_photo', variations={'thumbnail':(150, 120, True)})
MemberEmail = models.EmailField()
MemberClub = models.ForeignKey(Club)
def __str__(self):
return self.MemeberName
现在,当我通过django的内置管理面板制作用户时,我可以选择允许用户更改任何俱乐部的成员,但我想让他只能访问他所属的特定俱乐部的成员的。 正如您在picture 中所看到的,当有权访问添加通知的人时,所有俱乐部都处于下拉选项中。但不是我想要与他关联的useradmin的下拉列表中只有一个选项。
这是我的admin.py文件
from django.contrib import admin
# Register your models here.
from club.models import Club, Members, Notice
admin.site.register(Club),
admin.site.register(Members),
admin.site.register(Notice),
答案 0 :(得分:1)
这是许多用户一直在努力解决的问题。
我一直在使用几个外部软件包和几个自制解决方案。但到目前为止我发现的最好的是Django Guardian它是每个对象权限的实现。这意味着您可以管理他们有权访问的用户和权限。