【问题标题】:Django smart select not workingDjango智能选择不起作用
【发布时间】:2016-10-08 05:56:30
【问题描述】:

我已导入 django smart select 并有一个名为 Request 的模型,其中字段 assigned_toapproval_by 应该有动态选择。makemigrationsmigrate 没有错误,但动态选择下拉列表不是t 为assigned_to 工作。事实上,assigned_to 的下拉列表没有显示任何选择。可能是什么原因?

这里是models.py

from smart_selects.db_fields import ChainedForeignKey

class Department(models.Model):
  department_name = models.CharField(max_length=20)

  def __str__(self):
    return self.department_name

class UserProfile(models.Model):
  user = models.OneToOneField(User)
  user_department = models.ForeignKey("Department")

  def __str__(self):
    return self.user.username

class SuperUser(models.Model):
  superuser = models.OneToOneField(User,limit_choices_to={'is_superuser':True},unique=True)
  head_department = models.ForeignKey("Department")

  def __str__(self):
          return self.superuser.username

class Request(models.Model):
      # user = models.ForeignKey(User,null=True,related_name="user")
      department = models.ForeignKey("Department")
      request_type = models.CharField(max_length=20,choices=typechoices)
      priority=models.CharField(max_length=20,choices=prioritychoices)
      description = models.TextField()
      sample = models.FileField(storage=fs,blank=True,null=True)
      approval_flag = models.BooleanField(default=False)
      status = models.CharField(max_length=20,choices=statuschoices,default='pending')
      created=models.DateTimeField(auto_now_add=True,null=True)
      modified = models.DateTimeField(auto_now=True)
      assigned_to = ChainedForeignKey(UserProfile,blank=True,null=True,chained_field="department",chained_model_field="user_department",show_all=False)
      approval_by = ChainedForeignKey(SuperUser,related_name="apprby",blank=True,null=True,chained_field="department",chained_model_field="head_department",show_all=False)

      def __str__(self):
          return str(self.id)

【问题讨论】:

  • 我也更改了属性 show_all = True 但它仍然显示空下拉列表。可能是问题,即使是另一个部门也没有显示单一选择
  • 尝试-models.ForeignKey(部门)
  • 在获取外键时给出引号是否重要
  • 有没有其他方法可以提供动态选择,Django_smart_select 很烂。为什么要创建这样不起作用的插件
  • @MrinalMahajan:Here's the documentation for django-smart-selects。我不会猜测您希望您的 ChainedForeignKey 字段如何工作,但我怀疑如果您遵循记录的用法,您会取得更大的成功。

标签: python django


【解决方案1】:

因为分支master,我认为它没有稳定的代码。 我尝试了 js-unlinting-fixes 分支,它成功了。

只需执行以下操作,它就会开始工作

pip uninstall django-smart-selects
pip install  git+https://github.com/digi604/django-smart-selects.git@js-unlinting-fixes

编码愉快...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 2017-07-03
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多