当前位置: 首页 > 知识库问答 >
问题:

要更改电子邮件/个人资料图片的表单未显示?

云煌
2023-03-14

对此问题的任何指导都将不胜感激。我输入了必要的字段,这样在配置文件页面上,用户将能够编辑配置文件图片,用户名和电子邮件。当我创建表单时,它只显示update按钮和“Profile Info”文本。如何修复这一点,使编辑用户信息的表单出现?

在views.py中

'''

@login_required
def profile(response):
    if response.method == "POST":
        u_form = UserUpdateForm(response.POST, instance=response.user)
        p_form = ProfileUpdateForm(response.POST, response.FILES, instance=response.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(response, f'Your account has been updated!')
            return redirect("/profile")

    else:
        u_form = UserUpdateForm(instance=response.user)
        p_form = ProfileUpdateForm(instance=response.user.profile)

        args = {}
        args['u_form']= u_form,
        args['p_form']= p_form
    return render(response, 'register/profile.html')

'''

在Forms.py'''中

from django import forms
#from django.contrib.auth. import login, authenticate
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import User
from .models import Profile
from django.forms import ModelForm


class RegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ["username", "email", "password1", "password2"]

class UserUpdateForm(forms.ModelForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ["username", "email"]


class ProfileUpdateForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ['image']

'''

在profile.html中

null

{% extends "register/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="content-section">
      <div class="media">
        <img class="rounded-circle account-img" src="{{ user.profile.image.url }}">
        <div class="media-body">
          <h2 class="account-heading">{{ user.username }}</h2>
          <p class="text-secondary">{{ user.email }}</p>
        </div>
      </div>
    <div class="container">
      <form method="post" enctype="multipart/form-data">
          {% csrf_token %}
          <fieldset class="form-group">
              <legend class="border-bottom mb-4">Profile Info</legend>
              {{ u_form|crispy }}
              {{ p_form|crispy }}
          </fieldset>
          <div class="form-group">
              <button class="btn btn-outline-info" type="submit">Update</button>
          </div>
      </form>
    </div>
{% endblock content %}

null

共有1个答案

计胤
2023-03-14

要呈现模板中的某个变量,必须将其作为上下文传递给模板。行中:

return render(response, 'register/profile.html')

你永远不会把上下文传递给它。render接受可选的第三个参数作为上下文。所以行应该是:

return render(response, 'register/profile.html', args)

注意:您将视图中的request参数接受为response!这是一个很大的用词不当!请求是用户向服务器发出的,响应是服务器返回的。您应该将参数接受为request

 类似资料:
  • 每次尝试提交此联系人表单时,都会收到以下错误消息: “请输入您的消息。” 名称错误消息和电子邮件错误消息不会出现,除非我将它们留空。我尝试在HTML中指定post。 以下是HTML: 下面是PHP:

  • 我正在尝试让Selenium webdriver(控制Firefox)更新其登录的Facebook帐户的个人资料图片。我使用了一个典型的建议,即查找文件输入并发送文件路径的密钥,下面是我得到的: 无论如何,我得到的错误是: 回溯(最后一次调用):文件“C:/Users/maste/PycharmProjects/accountGenerator/accountGenerator.py”,第136行

  • 问题内容: 我有一些PHP代码,用于将表单发送到特定的电子邮件地址。但是,我想在PHP发送时再添加几个电子邮件地址。我怎样才能做到这一点? 谢谢。 问题答案: 这将起作用:

  • 我正在尝试在电子邮件中嵌入一个图像。我遵循了这里,这里和这里的例子和其他但我不能得到图像显示。 当我执行这个时,我得到的是一个空空如也的身体,里面有一个红十字,没有任何图像。如何使图像与电子邮件正文内联显示? 我正在使用Outlook 2016。我知道我可以在使用Outlook时插入图片,我也收到过别人在文本中插入图片的“正常”电子邮件,所以这肯定意味着我必须能够查看python脚本生成的图片?

  • 问题内容: 我目前有一个程序,可以从列表中随机选择引号并通过电子邮件发送。我现在也尝试在电子邮件中嵌入图片。我遇到了一个问题,可以附加电子邮件,但报价不再起作用。我已经在网上进行了研究,但解决方案对我不起作用。请注意,我使用的是Python 3.2.2。 任何指导将不胜感激。 从上面的代码可以看出,我尝试了不同的方法(引用#) 问题答案: 您正在费力地在中构造有效的MIME消息,然后放弃它并发送一