2015-12-02 9 views
1

Я пытаюсь опубликовать мой пользователь на странице проекта, однако при отправке формы сообщения я получаю сообщение 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 %} 
+0

Проверьте бэкэнд и сообщите мне, успешно ли создан проект ProjectPost. У меня такое чувство, что это может работать, и это просто проблема с перенаправлением. – Hybrid

+0

Привет @Hybrid, ProjectPost не создается к сожалению :-(Любые идеи? – ollysmall

+1

Пожалуйста, дайте полный отпечаток и шаблон. –

ответ

0

Вы сможете разместить свою форму/new_project /, но не существует в вашем urls.py. Вероятно, вы имели в виду/create_project /.

+0

Жаль, Даниэль, не могли бы вы объяснить немного больше? Я не знаю, что вы имеете в виду к сожалению. – ollysmall

+0

Не знаете, как быть более ясным: вы задали параметр действия своей формы в шаблоне, указав на неверный URL-адрес. –

 Смежные вопросы

  • Нет связанных вопросов^_^