如何解决将 Django smart_select 与 settings.Auth_user_model 一起使用
我正在尝试使用 smart_select 包在管理页面上进行动态选择。它适用于我定义的模型 - Attendee
。但我无法让它与我的 AUTH_USER_MODEL
一起使用。任何人都可以帮助我解决这个问题吗?
我已尝试同时使用以下两个代码,但我的 leader
中的 listing
应显示为空白。
ChainedForeignKey(Group,chained_field='syndicate',chained_model_field='creator',show_all=False,auto_choose=True,sort=True)
ChainedForeignKey(settings.AUTH_USER_MODEL,chained_model_field='username',sort=True)
我的model.py文件如下:
from django.db import models
from django.conf import settings
from django.db.models import fields
from smart_selects.db_fields import ChainedForeignKey
from django.db.models.fields import CharField,SlugField
from django.urls import reverse
# Create your models here.
class Group(models.Model):
"""
Create a model/table for group going to church
eg. Alpha Group; Christmas Casts/Crews
"""
name = models.CharField(max_length=200,db_index=True)
creator = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,blank=True,null=True,)
slug = models.SlugField(max_length=200,unique=True,db_index=True)
class Meta:
ordering = ('name',)
verbose_name = 'group'
verbose_name_plural = 'groups'
def __str__(self):
return self.name
# def get_absolute_url(self):
# return reverse()
class Attendee(models.Model):
"""
Create attendee
"""
group = models.ForeignKey(Group,related_name='attendees',on_delete=models.CASCADE)
name = models.CharField(max_length=200,db_index=True)
slug = models.SlugField(max_length=200,db_index=True)
class Meta:
ordering = ('name',)
index_together = (('id','slug'),) # Specify an index for the id & slug field together to improve performance for queries that utilize the 2 fields.
def __str__(self):
return self.name
# def get_absolute_url(self):
# return reverse()
class listing(models.Model):
syndicate = models.ForeignKey('Group',related_name='grouping',verbose_name='Group')
leader = ChainedForeignKey(settings.AUTH_USER_MODEL,sort=True)
attendee = ChainedForeignKey(Attendee,chained_model_field='group',sort=True)
attend_date = models.DateField()
attend_start_time = models.TimeField()
attend_end_time = models.TimeField()
venue = models.CharField(max_length=50)
purpose = models.TextField()
temp = models.DecimalField(max_digits=3,decimal_places=1)
safe_entry = models.BooleanField(default=True)
listing_submitted = models.DateTimeField(auto_Now_add=True)
listing_updated = models.DateTimeField(auto_Now=True)
class Meta:
ordering = ('attend_date','attend_start_time','syndicate')
models.UniqueConstraint(fields=['syndicate','attend_date','attend_start_time'],name='unique_submission')
def __str__(self):
return str(self.syndicate + "-" + self.attend_date)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。