【问题标题】:How to Set default value in 1:m relation, foreign key to user_auth_model in Django如何在 1:m 关系中设置默认值,Django 中 user_auth_model 的外键
【发布时间】:2021-09-11 14:39:58
【问题描述】:

我想在我的表中设置默认值,它必须是 user_auth_model 管理员的主键,但它显示了这个错误

class department(models.Model):
dept_id = models.AutoField(primary_key=True)
dept_name = models.CharField(max_length=100)
adid = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, null=False, default='admin')
def __str__(self):
    return self.dept_name

这是我保存时的错误

ValueError: invalid literal for int() with base 10: 'admin'

【问题讨论】:

    标签: django database django-models django-forms foreign-keys


    【解决方案1】:

    您可以创建一个可调用对象并将该可调用对象链接到admin

    from django.contrib.auth import get_user_model
    
    def default_admin_user():
        if hasattr(default_user, 'admin'):
            return default_user.admin
        else:
            default_user.admin = result = get_user_model().objects.get(username='admin')
            return result
    
    class department(models.Model):
        # …
        adid = models.ForeignKey(
            settings.AUTH_USER_MODEL,
            on_delete=models.DO_NOTHING,
            default=default_admin_user
        )

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 1970-01-01
      • 2018-08-30
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 2016-07-16
      相关资源
      最近更新 更多