【发布时间】:2022-01-04 19:37:27
【问题描述】:
我正在使用 django 在论坛上工作,我在从我拥有的模型类中访问用户全名和简历时遇到问题。我访问 user.username 或 user.email 没有问题,但不是来自 Author 类..
这是来自论坛应用程序中的models.py
User = get_user_model()
class Author(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
fullname = models.CharField(max_length=40, blank=True)
slug = slug = models.SlugField(max_length=400, unique=True, blank=True)
bio = HTMLField()
points = models.IntegerField(default=0)
profile_pic = ResizedImageField(size=[50, 80], quality=100, upload_to="authors", default=None, null=True, blank=True)
def __str__(self):
return self.fullname
我的表单在用户应用程序中,我有一个个人资料更新站点,表单是这样的
from forums.models import Author
class UpdateForm(forms.ModelForm):
class Meta:
model = Author
fields = ('fullname', 'bio', 'profile_pic')
然后这里是一些更新站点,但是没有什么让我可以访问生物或全名,我已经尝试了很多组合。我在这里迷路了..
{% block content %}
<section class="section" id="about">
<!-- Title -->
<div class="section-heading">
<h3 class="title is-2">Hey {{ user.username }}</h3>
<div class="container">
<p>{{ user.bio }}bio comes here</p>
</div>
</div>
这是来自用户应用的 view.py
from .forms import UpdateForm
def update_profile(request):
context = {}
user = request.user
instance = Author.objects.filter(user=user).first()
if request.method == 'POST':
form = UpdateForm(request.POST, request.FILES, instance=user)
if form.is_valid():
form.instance.user = user
form.save()
return redirect('/')
else:
form = UpdateForm(instance=user)
context.update({
'form': form,
'title': 'update_profile',
})
return render(request, 'register/update.html', context)
表单html
<form method="POST" action="." enctype="multipart/form-data">
{% csrf_token %}
{{form|crispy}}
<hr>
<button class="button is-block is-info is-large is-fullwidth">Update <i class="fa fa-sign-in" aria-hidden="true"></i></button>
</form>
如果我缺少某些关系,请帮助
【问题讨论】:
-
您能显示将上下文传递给模板的视图吗?
-
添加了view.py
标签: python django database sqlite