微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Django smart_select 与 settings.Auth_user_model 一起使用

如何解决将 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 举报,一经查实,本站将立刻删除。