django - Django UpdateView:ValueError:int()的无效文字,基数为10:用户名
问题描述
我有一个 Django 应用程序,其中包含一个基本的 Profile 模型,该模型使用 OneToOneField 扩展了 User 模型
class Profile(models.Model):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
)
这是 /updateProfile 的 url 模式
path('updateProfile/<pk>', views.UpdateProfileView.as_view(), name='update_profile'),
从网站的导航栏中调用如下:
<a href="{% url 'update_profile' request.user %}">UpdateProfile</a>
我在 forms.py 中使用了 ModelForm 类,如下所示:
class update_profile_form(forms.ModelForm):
class Meta:
model = Profile
fields = ('phone_number', 'profile_picture')
在 Views.py 中调用了以下基于类的 UpdateView 视图:
@method_decorator(login_required, 'dispatch')
class UpdateProfileView(UpdateView):
model = Profile
success_url = reverse_lazy('home')
form_class = update_profile_form
template_name = 'update_profile.html'
# this is where the error occurs
def get_queryset(self):
return Profile.objects.filter(user=self.request.user)
我的 urls.py 文件包含以下模式:
urlpatterns = [
path('', TemplateView.as_view(template_name='Login/home.html'), name='home'),
path('home/', TemplateView.as_view(template_name='Login/home.html'), name='home'),
path('updateProfile/<pk>', views.UpdateProfileView.as_view(), name='update_profile'),
]
我无法确定使用上面的用户字段组合来呈现 update_profile.html 模板中的表单。
解决方案
在 html 中更改这一行
<a href="{% url 'update_profile' request.user %}">UpdateProfile</a>
至
<a href="{% url 'update_profile' request.user.id %}">UpdateProfile</a>
as request.user returns user object
,但是url
haspk
需要一个int
字段
推荐阅读
- python - 如何从字典中将字符串添加到python中的json文件
- javascript - Nuxt.js 服务器端 Javascript 问题,框架混乱
- python - 当您知道文件的类型但不知道名称时,如何从 Azure Data Lake 下载文件?
- java - 如何在android的Recyclerview中停止GIF图像的动画
- sql - Sqlite 查询:每个播客的最近五集
- python - 计算熊猫系列中连续的个数
- html - Angular不渲染从组件中提取的HTML?
- javascript - 在 React Native 中使用来自 API 的数据进行条件渲染
- java - java.io.FileNotFoundException(没有这样的文件或目录) - 下载文件
- typescript - React Native 仍然使用错误定义的类型(TypeScript)运行