我有网址,但它有错误。例如,链接必须是 example/profile/3,但模板重定向到 example/profile/4。使用信号创建配置文件。我在看,id 用户和 id 配置文件不匹配。也许,这里有错误。模板重定向到 ID 为“用户”的链接,而不是 ID 为“个人资料”的链接!请帮助我。模型.pyclass Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) first_name = models.CharField(max_length=30, blank=True, default='') last_name = models.CharField(max_length=30, blank=True, default='') location = models.CharField(max_length=30, blank=True, default='') #other fields def get_absolute_url(self): return reverse('profile-detail', args=[str(self.id)]) def __str__(self): return self.user.usernameclass Post(models.Model): user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) #other fields def __str__(self): return self.title def get_absolute_url(self): return reverse('post-detail', kwargs={'pk': self.pk})信号.py@receiver(post_save, sender=User)def create_user_profile(sender, instance, created, **kwargs): if created: Profile.objects.create(user=instance)@receiver(post_save, sender=User)def save_user_profile(sender, instance, **kwargs): instance.profile.save()管理文件class ProfileAdmin(admin.ModelAdmin): list_display = ('user', 'first_name', 'last_name', 'location', 'about_me', 'contacts')admin.site.register(Profile, ProfileAdmin)视图.pyclass PostCreateView(FormView): form_class = PostForm template_name = 'post/post_form.html' success_url = reverse_lazy('posts') def form_valid(self, form): response = super(PostCreateView, self).form_valid(form) form.instance.user = self.request.user form.save() return responseclass PostDetailView(generic.DetailView): model = Post
添加回答
举报
0/150
提交
取消