如何在 django 表单中获取员工用户的用户名

     2023-02-26     66

关键词:

【中文标题】如何在 django 表单中获取员工用户的用户名【英文标题】:How fetch username of staff user in django forms 【发布时间】:2020-07-29 14:26:14 【问题描述】:

我正在使用自定义用户模型。我还有另一个客户模型。我希望用户字段仅显示员工用户,而该字段中的其他类型的用户不会显示在注册表单中。就我而言,它显示了所有类型的用户,无论是员工、客户还是服务用户。

Models.py

class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(max_length=254, unique=True)
    name = models.CharField(max_length=254, null=True)
    email = models.EmailField(max_length=254, null=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_Customer = models.BooleanField(default=False)
    is_Service_Provider = models.BooleanField(default=False)

    last_login = models.DateTimeField(null=True, blank=True)
    date_joined = models.DateTimeField(auto_now_add=True)

    USERNAME_FIELD = 'username'
    EMAIL_FIELD = 'email'
    REQUIRED_FIELDS = []

    objects = UserManager()

    def get_absolute_url(self):
        return "/users/%i/" % self.pk

    def get_username(self):
        return self.username

class Customer(models.Model):


    user = models.OneToOneField('accounts.User', on_delete=models.SET_NULL, null=True)
    email = models.EmailField(max_length=254, null=False)
    date_Of_Birth = models.DateField(null=False)
    country = models.ForeignKey('accounts.Country', null=True, on_delete=models.SET_NULL, related_name='Country')
    state = models.ForeignKey('accounts.State', null=True, on_delete=models.SET_NULL, related_name='State')
    city = models.ForeignKey('accounts.City', null=True, on_delete=models.SET_NULL, related_name='city')
    address = models.CharField(max_length=254, null=False)
    refernce_by_person_name = models.CharField(max_length=254, null=True)
    refernce_by_person_contact_no = models.IntegerField(null=True)
    phone_no = models.IntegerField(null=False)
    alternate_no = models.IntegerField(null=False)
    hobbies = models.CharField(max_length=254)
    

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

views.py

def form(request):
    forms = CustomerRegistrationForm()

    if request.method == "POST":

        forms = CustomerRegistrationForm(request.POST)
        if forms.is_valid():
            forms.save() 
            return redirect('/customer/show')

    context = 
        'forms' : forms,
    

    return render(request,'customer/form.html', context)    

forms.py

class CustomerRegistrationForm(forms.ModelForm):
    class Meta:
        model = Customer
        fields = '__all__'

【问题讨论】:

【参考方案1】:

您可以像这样过滤员工用户。

class CustomerRegistrationForm(forms.ModelForm):      
    user = forms.ModelChoiceField(queryset=User.objects.filter(is_staff=True))
    class Meta:
        model = Customer
        fields = ['user','email','date_of_birth',...]

【讨论】:

谢谢,兄弟解决了问题。

如何在不完整的 Django 表单字段中获取用户输入?

】如何在不完整的Django表单字段中获取用户输入?【英文标题】:HowtogettheuserinputinanincompleteDjangoformfield?【发布时间】:2017-07-2722:50:50【问题描述】:我有一个“调查”表格,其中包含姓名、身份证和年龄。我想在用户提交表单... 查看详情

如何限制员工用户只能在 Django 管理页面中查看他们的信息?

】如何限制员工用户只能在Django管理页面中查看他们的信息?【英文标题】:HowtorestrictaccessforstaffuserstoseeonlytheirinformationinDjangoadminpage?【发布时间】:2019-10-0715:12:33【问题描述】:我创建了一个自定义Django管理页面。我有两种类... 查看详情

如何从 django 的表单中获取数据?

】如何从django的表单中获取数据?【英文标题】:Howtogetadatafromformindjango?【发布时间】:2017-12-3113:10:44【问题描述】:我的模板django中有一个可以的表单,它可以保存在模型中。好吧,现在,我想在这个表单中创建一个新表单。... 查看详情

如何在需要的基本 Django 用户模型中获取电子邮件字段?

】如何在需要的基本Django用户模型中获取电子邮件字段?【英文标题】:HowcanIgettheemailfieldinthebasicDjangoUsermodeltoberequired?【发布时间】:2012-05-0303:30:47【问题描述】:我试图强制用户在注册时输入他们的电子邮件。我了解如何将... 查看详情

如何在 django admin 的注册表单中删除用户名字段?

】如何在djangoadmin的注册表单中删除用户名字段?【英文标题】:Howtoremoveusernamefieldintheregisterformondjangoadmin?【发布时间】:2016-07-0519:05:52【问题描述】:使用rest-framework和django-allauth设置标志来删除登录和注册所需的用户名:#sett... 查看详情

如何在 django 中使用当前用户的邮件地址初始化电子邮件模型表单

】如何在django中使用当前用户的邮件地址初始化电子邮件模型表单【英文标题】:HowtouserEmailmodelformshouldbeinitialisedwithcurrentuser\'smailaddressindjango【发布时间】:2014-10-0402:57:27【问题描述】:如何使用from_email地址初始化电子邮件表... 查看详情

如何根据 Django 表单中的登录用户过滤值?

】如何根据Django表单中的登录用户过滤值?【英文标题】:HowdoIfiltervaluesaccordingtologgedinuserinDjangoforms?【发布时间】:2021-05-0817:35:36【问题描述】:我有Rank、UserProfile和Company模型。这些类与外键相连。排名为“Lead”的用户可以从... 查看详情

如何让来自 Ajax 的 Django 表单错误出现在用户屏幕上?

】如何让来自Ajax的Django表单错误出现在用户屏幕上?【英文标题】:HowdoIgetDjangoformerrorsfromAjaxtoappearontheuserscreen?【发布时间】:2021-12-0713:54:58【问题描述】:也许我没有清楚地思考......但如果我通过AJAX提交表单......我可以通过... 查看详情

如何在 django 1.10 中获取当前的“用户名”?

】如何在django1.10中获取当前的“用户名”?【英文标题】:HowdoIgetthecurrent"username"indjango1.10?【发布时间】:2017-06-0318:54:15【问题描述】:我正在尝试用django1.10中的当前用户名填充模型中的一个字段。这是我正在使用的代... 查看详情

如何在 Django 应用程序中获取有关登录用户的信息?

】如何在Django应用程序中获取有关登录用户的信息?【英文标题】:HowcanIgetinformationaboutthelogged-inuserinaDjangoapplication?【发布时间】:2021-10-2913:49:06【问题描述】:我想要做的是从登录用户那里获取用户信息,并将附加信息存储在... 查看详情

如何在 django 中制作一个类似于谷歌表单的表单?用户可以在哪里根据需要添加或删除字段?用户最多可以添加10-20个字段?

】如何在django中制作一个类似于谷歌表单的表单?用户可以在哪里根据需要添加或删除字段?用户最多可以添加10-20个字段?【英文标题】:Howtomakeaformindjangolikegoogleform?whereusercanaddordeletefieldaccordingtotheirneed?Usercanaddupto10-20field?【... 查看详情

Django:如何在视图中获取用户坐标(纬度,经度)?

】Django:如何在视图中获取用户坐标(纬度,经度)?【英文标题】:Django:Howtogetauserscoordinates(latitude,longitude)inaview?【发布时间】:2020-01-1303:53:28【问题描述】:在确定将重定向发送到哪里之前,我需要能够检查用户的位置。在... 查看详情

如何从 django 中的用户模型中获取 id

】如何从django中的用户模型中获取id【英文标题】:HowtogetidfromUsermodelindjango【发布时间】:2015-12-2214:01:22【问题描述】:我有以下代码:user=User.objects.get(username=uid)我通过url"/profile/showprofile/post.author"传递uid的值。我的post.author包... 查看详情

如何在django中注销时获取用户

】如何在django中注销时获取用户【英文标题】:HowtogettheuserwhileLogoutIndjango【发布时间】:2020-09-0111:12:40【问题描述】:我正在尝试让用户从django注销并将其作为参数传递给外部python脚本。这是我的注销视图:deflogoutUser(request):use... 查看详情

Django formset 设置当前用户

...26【问题描述】:与thisquestion相关,但对其进行扩展-我将如何在表单集中使用此技术?我想在表单中使用当前登录的用户,但我在表单集中使用该表单。单个表单的参考解决方案是将request.user传递给表单并在init中处理。如何为... 查看详情

如何在Django中获取具有特定权限组的所有用户的列表

】如何在Django中获取具有特定权限组的所有用户的列表【英文标题】:HowtogetalistofalluserswithaspecificpermissiongroupinDjango【发布时间】:2010-09-2713:22:33【问题描述】:我想获取所有具有特定权限组的Djangoauth用户的列表,如下所示:use... 查看详情

如何覆盖 django-redux 默认用户注册表单

...当默认的django-registration-redux注册页面加载时,它会显示用户名、电子邮件、密码字段,以及指示用户对用户名的最小xters的标签,以及设置密码的说明列表。我希望能够在表单中添加一些字 查看详情

在 django 模板中获取项目的值以进行循环

】在django模板中获取项目的值以进行循环【英文标题】:Gettingthevalueofaniteminadjangotemplateforloop【发布时间】:2011-08-3017:21:06【问题描述】:使用django,我有一个表单,用户可以在其中输入他的\'position\'。用户可以添加多个位置。... 查看详情