找不到参数'(1,)'的'profile_update'相反。问题

时间:2019-04-18 04:38:46

标签: django

我有一个基本的URL链接,可访问个人资料编辑屏幕,但似乎破坏了我的应用程序。

我尝试了很多事情,不同的观点让我感到困惑。我能够使表格以前出现过,但是以某种方式破坏了它。

从我的base.html中

(如果我删除此行,该应用程序将再次开始工作)。我不确定传递的这个user.id参数-是否需要?

        <li class="nav-item">
      <a class="nav-link" href="{% url 'accounts:profile_update' user.id %}">Edit Profile</a>
    </li>

我的网址文件:

 path('profile/edit/', views.ProfileCreate.as_view(), name='profile_update'),

我的模特:

class Profile(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='userprofile')
    houseNumber = models.CharField(max_length=150, default='')
    street = models.CharField(max_length=150, default='')
    suberb = models.CharField(max_length=150, default='')
    city = models.CharField(max_length=150, default='')
    phone = models.CharField(max_length=150, default='')

    def __unicode__(self):
        return self.user.get_full_name()

    def __str__(self):
        return self.user

    def get_absolute_url(self):
        return reverse('account:profile', kwargs=[self.pk])

我的表格:

class ProfileForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ProfileForm, self).__init__(*args, **kwargs)

    class Meta:
        model = Profile
        fields = ['user', 'houseNumber', 'street', 'suberb', 'city', 'phone']

表单的html

{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
{% if form.errors %}
    {% for field in form %}
        {% for error in field.errors %}
            <div class="alert alert-danger">
                <strong>{{ error|escape }}</strong>
            </div>
        {% endfor %}
    {% endfor %}
    {% for error in form.non_field_errors %}
        <div class="alert alert-danger">
            <strong>{{ error|escape }}</strong>
        </div>
    {% endfor %}
{% endif %}
  <div class="container">
    <form enctype="multipart/form-data" action="{% url 'accounts:profile_update' %}" method="post" novalidate>
      {% csrf_token %}
      {{ form|crispy }}
      <input name="Submit" type="submit" class="btn btn-success" value="Save"></input>
    </form>
    <p></p>
  </div>

{% endblock %}

很抱歉,如果这个问题与我问过的其他几个问题类似,但是我只是不得不使用另一种方法重新使用此表单,因为它以前并没有正常工作。

1 个答案:

答案 0 :(得分:0)

根据您的网址,您不需要通过user.id传递update_profile。因此,请将代码更改为:

<a class="nav-link" href="{% url 'accounts:profile_update' %}">Edit Profile</a>