簡體   English   中英

Django更新視圖將無法保存

[英]Django update view won't save

我有此更新視圖,但提交表單后將無法保存。 5分鍾前,一切工作正常,然后我為用戶帖子添加了編輯功能,突然間,嘗試進行任何編輯時都將一無所獲。

用戶應用視圖:

class UserEditProfileView(LoginRequiredMixin,UpdateView):
    login_url = '/login/'
    model = UserProfile
    fields = [
            'first_name',
            'profile_pic',
            'location',
            'title',
            'user_type',
            'website',
            'about',
            'twitter',
            'dribbble',
            'github'
            ]
    template_name_suffix = '_edit_form'

    def get_success_url(self):
        userid = self.kwargs['pk']
        return reverse_lazy('users:user_profile',kwargs={'pk': userid})

用戶應用模型:

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

    first_name = models.CharField(max_length=50,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    profile_pic = models.ImageField(upload_to='profile_pics',null=True,blank=True)
    location = models.CharField(max_length=150)
    title = models.CharField(max_length=250)
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1)
    website = models.URLField(max_length=100,blank=True)
    about = models.TextField(max_length=500,default='about')
    twitter = models.CharField(max_length=50,blank=True)
    dribbble = models.CharField(max_length=50,blank=True)
    github = models.CharField(max_length=50,blank=True)

    @receiver(post_save, sender=User)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            UserProfile.objects.create(user=instance)

    @receiver(post_save, sender=User)
    def save_user_profile(sender, instance, **kwargs):
        instance.userprofile.save()

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

用戶profile_edit_form.html:

{% extends "users/base.html" %}

{% block content %}

    <div class="form-title">
        <h2 class="form-title-text">Edit Profile</h2>
    </div>

    <div class="user-forms-base">
        <form method="POST">
            {% csrf_token %}
            {{ form.as_p }}
            <input type="submit" value="Save" />
        </form>
</div>

{% endblock %}

我在更新首頁上的帖子時遇到相同的問題,但是我假設這些問題是相同的,因此我將能夠在此復制該解決方案。

有人在注釋中提到了這一點,但是基本上表單返回的是有效表單,因此我覆蓋了form_invalid來打印可能導致它的任何錯誤。 這表明在模型級別期望int時,它正在發送string 一旦我將其切換回發送int ,問題就消失了,現在可以解決了。 多謝你們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM