【问题标题】:Add username or any user authentication related field like first name, last name etc in model forms在模型表单中添加用户名或任何用户身份验证相关字段,如名字、姓氏等
【发布时间】:2020-09-14 23:08:36
【问题描述】:

我正在 django 中创建一个项目,其中我有两个不同的用户,即客户和餐馆。 我正在为菜单创建一个模型,我想在其中添加以直接在模型中添加餐厅名称(在这种情况下为用户名),而不是每次都输入完整的表单。如果可能的话,如果可以从像这样的另一个字段中获取名称,这是一部分登录系统?

模型.py

class menu_details(models.Model):
    restaurant_name = models.CharField(blank=True, max_length=20)
    dish_name = models.CharField(blank=True, max_length=20)
    dish_type = models.CharField(max_length=10, choices=food_type, default='veg')
    price = models.CharField(blank=True, max_length=20)
    description = models.TextField(blank=True, max_length=5000)
    image = models.ImageField0(blank=True)

    class Meta:
        db_table = "menu_details"

【问题讨论】:

    标签: python django django-models django-forms django-authentication


    【解决方案1】:

    如果我理解你想要什么,我认为你需要一个指向用户信息的外键字段。

    field_name= models.ForeignKey(User, help_text="", blank=True, null=True, on_delete=models.CASCADE)
    

    然后你可以在视图中访问用户实例的所有数据,例如:

    this_menu = menu_details.objects.get(pk=1)
    
    restaurant_name = this_menu.field_name.first_name
    restaurant_email = this_menu.field_name.email
    

    或在模板中:

    {{ this_menu.field_name.first_name }}
    {{ this_menu.field_name.email}}
    

    【讨论】:

    • 有点,但我需要从那里获得特定值,例如用户名或名字。
    • @MayankTola 我更新了答案,解释了以后如何访问信息。
    • 好的,它会将与用户相关的所有数据存储在“字段名称”中,我可以访问任何我想要的数据,对吗?
    • @MayankTola 没错。我推荐以下 Django 教程:developer.mozilla.org/es/docs/Learn/Server-side/Django/…
    • 并非真正“存储”“字段名称”中的所有数据,只是关联两个模型。
    猜你喜欢
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多