Django身份验证:用户模型冲突

Django身份验证:用户模型冲突,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,我有一个这样的自定义用户模型类用户(models.model):我还想利用Django的内置身份验证系统(它有一个现成的用户模型)。我目前有一个应用程序头的基本模板文件,我想在其中显示登录的用户名,如下{{user.username}}这似乎工作正常,除了在响应上下文中传递自定义用户模型的模板之外 模型: class User(models.Model): first_name = models.CharField( max_length=255, ) last_na

我有一个这样的自定义用户模型
类用户(models.model):
我还想利用Django的内置身份验证系统(它有一个现成的用户模型)。我目前有一个应用程序头的基本模板文件,我想在其中显示登录的用户名,如下
{{user.username}}
这似乎工作正常,除了在响应上下文中传递自定义用户模型的模板之外

模型:

class User(models.Model):


  first_name = models.CharField(
      max_length=255,
  )
  last_name = models.CharField(
      max_length=255,
  )

  summary = models.CharField(
      max_length=4000,
      blank=True,
      default="",
  )
模板:

  <ul class="nav navbar-nav navbar-right">
            <li><a href="#">{{ user.username }}</a></li>
  </ul>

我认为现在可以创建
dango.contrib.auth.User
的子类,但许多来源建议创建一个
UserProfile
模型,该模型链接到具有一对一关系的
User
对象:

from django.contrib.auth.models import User
from django.db.models.signals import post_save

class UserProfile(models.Model):  
  user = models.OneToOneField(User)
  favourite_pizza = models.CharField(max_length=20)
  #other fields here

  def __str__(self):  
    return "%s's profile" % self.user  

def create_user_profile(sender, instance, created, **kwargs):  
  if created:  
    profile, created = UserProfile.objects.get_or_create(user=instance)  

post_save.connect(create_user_profile, sender=User)

User.profile = property(lambda u: u.get_profile())

这应该允许您在模板中使用
{{app_user.username}

{{app_user.profile.favorite_pizza}
。带有解释的代码是

我不确定这个问题?使用自定义的
User
模型和
render\u to\u response
您将可以访问模板中的
{app\u User}
变量扫描您发布的
models.py
views.py
和您编辑的模板,佩尔@亨利佛罗伦萨request@Jhakki是否与
views.py
中的
User
对象存在导入冲突?
是否将django.contrib.auth.models.User导入为AuthUser
修复此问题?或者像我下面的回答一样,两个对象被链接起来?你发布的代码越多,它就越有用。
from django.contrib.auth.models import User
from django.db.models.signals import post_save

class UserProfile(models.Model):  
  user = models.OneToOneField(User)
  favourite_pizza = models.CharField(max_length=20)
  #other fields here

  def __str__(self):  
    return "%s's profile" % self.user  

def create_user_profile(sender, instance, created, **kwargs):  
  if created:  
    profile, created = UserProfile.objects.get_or_create(user=instance)  

post_save.connect(create_user_profile, sender=User)

User.profile = property(lambda u: u.get_profile())