Я пытаюсь опубликовать мой пользователь на странице проекта, однако при отправке формы сообщения я получаю сообщение 404 и сообщение «Нет пользователя соответствует заданному запросу». Я также не уверен, если у меня есть моя form_valid часть правильно.Продолжайте получать ошибку 404 и «Нет пользователя, соответствующий заданному запросу». сообщение в форме отправки
Я хочу, чтобы мой пользователь мог делать сообщения на разных страницах проекта, которые у них есть, и для каждого сообщения, которое должно быть связано с правильным проектом.
Любая помощь и пример кода были бы высоко оценены!
просмотров
class NewPost(CreateView):
model = ProjectPost
form_class = ProjectPostForm
template_name = 'howdidu/new_post.html'
def form_valid(self, form):
self.object = form.save(commit=False)
project = UserProject.objects.get(slug=self.kwargs["slug"])
self.object.project = project
self.object.save()
return super(NewPost, self).form_valid(form)
def get_success_url(self):
project_username = self.request.user.username
project_slug = self.object.slug
return reverse('user_project', kwargs={'username':project_username, 'slug': project_slug})
URLs
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^register_profile/$', views.register_profile, name='register_profile'),
url(r'^update_profile/$', views.update_profile, name='update_profile'),
url(r'^create_project/$', login_required(views.CreateProject.as_view()), name='create_project'),
url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/new_post/$', login_required(views.NewPost.as_view()), name='new_post'),
url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/update_project/$', login_required(views.UpdateProject.as_view()), name='update_project'),
url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/delete_project/$', login_required(views.DeleteProject.as_view()), name='delete_project'),
url(r'^(?P<username>\w+)/$', views.profile_page, name='user_profile'),
url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/$', views.project_page, name='user_project'),
)
модели
class UserProject(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=100)
project_overview = models.CharField(max_length=1000)
project_picture = models.ImageField(upload_to='project_images', blank=True)
date_created = models.DateTimeField(auto_now_add=True)
project_views = models.IntegerField(default=0)
project_likes = models.IntegerField(default=0)
project_followers = models.IntegerField(default=0)
slug = models.SlugField(max_length=100, unique=True) #should this be unique or not?
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super(UserProject, self).save(*args, **kwargs)
def __unicode__(self):
return self.title
class ProjectPost(models.Model):
project = models.ForeignKey(UserProject)
title = models.CharField(max_length=100)
post_overview = models.CharField(max_length=1000)
date_created = models.DateTimeField(auto_now_add=True)
post_views = models.IntegerField(default=0)
post_likes = models.IntegerField(default=0)
формы
#form to add project details
class UserProjectForm(forms.ModelForm):
class Meta:
model = UserProject
fields = ('title', 'project_picture', 'project_overview')
#form to create a post
class ProjectPostForm(forms.ModelForm):
class Meta:
model = ProjectPost
fields = ('title', 'post_overview')
шаблон
{% extends 'howdidu/base.html' %}
{% load staticfiles %}
{% block title %}New Post{% endblock %}
{% block body_block %}
<h1>Create a new post</h1>
<form enctype="multipart/form-data" id="ProjectPostForm" method="post" action="/new_post/">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" name="submit" value="Create" />
</form>
{% endblock %}
Проверьте бэкэнд и сообщите мне, успешно ли создан проект ProjectPost. У меня такое чувство, что это может работать, и это просто проблема с перенаправлением. – Hybrid
Привет @Hybrid, ProjectPost не создается к сожалению :-(Любые идеи? – ollysmall
Пожалуйста, дайте полный отпечаток и шаблон. –