相关疑难解决方法(0)

Django - 用电子邮件登录

我希望django通过电子邮件验证用户,而不是通过用户名.一种方法是提供电子邮件值作为用户名值,但我不希望这样.原因是,我有一个网址/profile/<username>/,因此我没有网址/profile/abcd@gmail.com/.

另一个原因是所有电子邮件都是唯一的,但有时会发生用户名.因此我将自动创建用户名为fullName_ID.

我怎样才能让Django通过电子邮件进行身份验证?

这就是我创建用户的方式.

username = `abcd28`
user_email = `abcd@gmail.com`
user = User.objects.create_user(username, user_email, user_pass)
Run Code Online (Sandbox Code Playgroud)

这是我登录的方式.

email = request.POST['email']
password = request.POST['password']
username = User.objects.get(email=email.lower()).username
user = authenticate(username=username, password=password)
login(request, user)
Run Code Online (Sandbox Code Playgroud)

除了首先获取用户名之外,还有其他任何登录信息吗?

django

53
推荐指数
7
解决办法
4万
查看次数

Django中AbstractUser和AbstractBaseUser的区别?

使用AbstractUser和AbstractBaseUser看起来非常相似.

from django.contrib.auth.models import AbstractUser, AbstractBaseUser
Run Code Online (Sandbox Code Playgroud)

两者有什么区别?

django

41
推荐指数
3
解决办法
2万
查看次数

Django用户个人资料

在向用户个人资料中添加其他字段时,例如位置,性别,雇主等,我应该在其中添加其他列django.contrib.auth.models.User并将其保存吗?或者我应该创建一个新表来保存用户配置文件信息?

此外,当用户上传个人资料图片时,我应该将其保存在同一个表格中吗?(注意这不是一个生产服务器,我只是在我的本地运行服务器上执行此操作来解决问题).谢谢

django django-models

39
推荐指数
6
解决办法
3万
查看次数

Django用户模型,添加功能

我想在Django的默认用户模型中添加一个新函数,用于检索模型类型的相关列表.

这样的Foo模型:

class Foo(models.Model):
    owner = models.ForeignKey(User, related_name="owner")
    likes = models.ForeignKey(User, related_name="likes")
Run Code Online (Sandbox Code Playgroud)

........

    #at some view
    user = request.user
    foos= user.get_related_foo_models()
Run Code Online (Sandbox Code Playgroud)

怎么能实现这一目标?

django django-models django-users

28
推荐指数
2
解决办法
1万
查看次数

扩展Django中的User对象:用户模型继承还是使用UserProfile?

要使用自定义字段扩展User对象,Django文档建议使用UserProfiles.但是,根据这个问题回答一年左右的问题:

扩展django.contrib.auth.models.User现在也更好 - 自从Django的继承代码重构在模型API中以来.

和诸如物品此布局如何与优点延伸,以与自定义字段的用户模型,一起(,而不是通过.get_profile直接从用户对象检索属性()).

所以我想知道在这个问题上是否有任何共识,或者使用其中一个的原因.甚至Django团队目前的想法是什么?

django django-users

16
推荐指数
1
解决办法
1万
查看次数

使用admin auth注册自定义用户模型

在Django项目中,我有一个自定义用户模型,它添加了一个额外的字段:

class User(AbstractUser):

    company = models.ForeignKey(Company, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

比如说,这个模型在我的应用程序中定义MyApp.models.

如何让新User模型在"身份验证和授权"下显示为原始django.contrib.auth模型?

在此输入图像描述

python django django-admin django-authentication

11
推荐指数
1
解决办法
1063
查看次数

Django:Django Admin中具有唯一外键的UserProfile

我使用名为的自定义用户配置文件扩展了Django的用户模型UserExtension.它通过一个独特的ForeignKey Relationship与User相关,这使我能够以内嵌形式在admin中编辑它!我正在使用信号为每个新用户创建一个新的配置文件:

def create_user_profile(sender, instance, created, **kwargs):  
    if created:
        try:  
            profile, created = UserExtension.objects.get_or_create(user=instance)
        except:
            pass  

post_save.connect(create_user_profile, sender=User) 
Run Code Online (Sandbox Code Playgroud)

(如此处所述:在Django中使用自定义字段扩展用户模型)问题是,如果我通过管理员创建新用户,则在保存"列user_id不唯一"时会出现IntegritiyError.似乎信号被调用两次,但我想管理员试图保存配置文件AFTERWARDS?但是如果我在系统的其他部分创建一个新用户,我需要通过信号创建!

django inline admin foreign-keys django-signals

10
推荐指数
1
解决办法
4612
查看次数

姜戈。如何在 User 模型中添加额外的字段并将其显示在管理界面中

我正在学习 Django,需要一些帮助。

我需要在我的用户模型中包含一个额外的布尔字段(我相信数据库中的 auth_user 表),并在管理用户时将其显示在管理界面中,例如此图像中的员工状态字段...

127:0.0.1:8000/管理员/用户:

在此处输入图片说明

和...

127.0.0.1:8000/admin/auth/user/2/change/ :

在此处输入图片说明

我不确定如何处理这个问题。我知道我必须扩展 AbstractUser 模型,然后可能手动将该字段添加到数据库中,但是如何更新管理界面的视图、表单和模板的新字段?我是否必须为所有这些重写 django 管理源代码,还是有更简单的方法?

python django web

7
推荐指数
3
解决办法
2万
查看次数

电子商务应用程序中的Django用户模型扩展

我有一个django电子商务项目工作正常,直到我决定改进它.我让用户在某些服务上下订单,但每次下订单时都要输入他们的详细信息(姓名,邮件,地址等),所以我决定升级应用程序,以便用户可以添加他们的帐单地址,并可以参考在订单中或继续作为客人.

模型

class Order(models.Model):
    first_name = models.CharField(max_length=50) 
    last_name = models.CharField(max_length=50)
    email = models.EmailField()
    address = models.CharField(max_length=250) 
    postal_code = models.CharField(max_length=20) 
    city = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    paid = models.BooleanField(default=False)

class OrderItem(models.Model):
    order = models.ForeignKey(Order, related_name='items')
    product = models.ForeignKey(Product,related_name='order_items')
    price = models.DecimalField(max_digits=10, decimal_places=2)
    quantity = models.PositiveIntegerField(default=1)
Run Code Online (Sandbox Code Playgroud)

视图

def order_create(request):
    cart = Cart(request)
    if request.method == 'POST':
        form = OrderCreateForm(request.POST) 
        if form.is_valid():
            order = form.save() 
            for item in cart:
            OrderItem.objects.create(order=order, product=item['product'],price=item['price'], quantity=item['quantity'])
            cart.clear()
            return render(request,'order/created.html', {'order': order})
    else:
        form = …
Run Code Online (Sandbox Code Playgroud)

python django

7
推荐指数
1
解决办法
592
查看次数

覆盖身份验证方法 - Django admin

我试图弄清楚如何使用其他功能增强authenticate方法.

例如

  • 密码过期
  • 特殊密码格式
  • 长度要求
  • 等等...

这个网站的前端非常简单,但管理面板呢?


我估计我应该覆盖User的Manager对象,因为authenticate可能存在于那里.我觉得这很难理解.

提前致谢!:)

python django django-models django-admin django-authentication

6
推荐指数
1
解决办法
2450
查看次数