我正在开发我的第一个 Django 项目并使用 django-registration 和 django-profiles。前者工作得很好,没有任何问题。第二个问题有点多。
几个小时后,终于可以查看特定的用户配置文件,这非常棒,还有所有配置文件的列表。
我遇到的两个问题:创建新用户时,django-profiles 不会自动创建新配置文件。在管理员中创建用户后,应创建个人资料。那没有发生。
此外,profiles/edit_profile 表单会导致此错误:
“/profiles/edit/ 处的TemplateSyntaxError 在渲染时捕获 NoReverseMatch:未找到带有参数 '(,)' 和关键字参数 '{}' 的 'edit_profile' 的反向。”
我一直在寻找这些问题的答案,但无济于事。
这是我的应用程序文件中配置文件的模型:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=35)
email = models.EmailField()
birth_date = models.DateField(blank=True, null=True)
city = models.CharField(max_length=25)
state = models.CharField(max_length=20)
zip_code = models.CharField(max_length=10)
def __unicode__(self):
return " %s" % (self.user)
def get_absolute_url(self):
return ('profiles_profile_detail', (), { 'username': self.user.username })
get_absolute_url = models.permalink(get_absolute_url)
这是我的表格:
class ProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
这是模板:
{% extends 'base.html' %}
{% block page_title %}Edit Profile{% endblock %}
{% block headline %}Edit Stentorian Profile{% endblock %}
{% block content %}
<form action="{% url edit_profile user %}" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
{% endblock %}
有兴趣了解我犯了哪些错误以及如何解决这些错误。(我意识到用户对象带有名字和姓氏,但是除了使用它们自己的特定字段之外,似乎没有其他方法可以将它们插入到配置文件中)。
任何见解表示赞赏。
编辑:由于缺少手册,它似乎已经解决了。不幸的是,/profiles/edit 现在反弹到 /profiles/create。不确定这个问题。