有人可以帮我解决这个问题吗?
models.朋友
@autoconnect
class Event(models.Model):
title = models.CharField(max_length=50, unique=True)
slug = models.CharField(max_length=100, default=' ', blank=True)
description = models.CharField(max_length=250, blank=True)
PrivacityType = ((1, 'Público'), (2, 'Privado'))
privacity = models.IntegerField(choices=PrivacityType, default=1, blank=True)
EVENT_TYPE = ((1, 'Deporte'), (2, 'Nutrición'), (3, 'Salud'))
type = models.IntegerField(choices=EVENT_TYPE, default=1)
owner = models.ForeignKey(User)
creation_date = models.DateTimeField(auto_now=True)
updated_date= models.DateTimeField(auto_now_add=True)
start = models.DateTimeField(default=datetime.datetime.now())
end = models.DateTimeField(default=datetime.datetime.now())
address = models.CharField(max_length=250, default='', blank=True)
notes = models.CharField(max_length=250, default='', blank=True)
def __unicode__(self):
return self.title
def pre_save(self):
self.slug = self.title.replace(" ", "_").lower()
forms.朋友
class EventForm(forms.ModelForm):
title = forms.CharField(required=True, widget=forms.TextInput(attrs={'placeholder': 'Título'}))
description = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': 'Descripción'}))
address = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': 'Lugar'}))
notes =forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': 'Añade tus notas'}))
class Meta:
model = event_models.Event
fields = '__all__'
views.朋友
class EventUpdateView(LoginRequiredMixin, UpdateView):
model = events_models.Event
template_name = 'event.html'
fields = ['title', 'description']
slug_field = 'slug'
slug_url_kwarg = 'slug'
context_object_name = 'event'
URLs.朋友
url(r'^eventos/(?P<slug>\w+)/$', calendar_views.EventUpdateView.as_view(), name='detail_event'),
url(r'^eventos/nuevo/$', calendar_views.add_event, name='add_event'),
event.html:
{% extends "calendar.html" %}
{% load static %}
{% load calendar_tags %}
{% block event %}
<!-- Event Information Area -->
<div class="col-md-6 col-lg-6 col-sm-12 col-xs-12 smt-30 xmt-30">
<div class="map-contacts">
<!--<form id="contact-form" method="POST">-->
<form action="{% url 'calendar:detail_event' event_slug=event.slug %}" method="POST">
{% csrf_token %}
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
<h3>Privacidad</h3>
{{ event.privacity }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
<h3>Categoría</h3>
{{ event.type }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
{{ event.title }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
{{ event.description }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
{{ event.address }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
<h3>Inicio</h3>
{{ event.start }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
<h3>Fin</h3>
{{ event.end }}
</div>
</div>
<!-- Event Form Area -->
<div class="single-contact-form">
<div class="contact-box subject">
<h3>Privacidad</h3>
{{ event.notes }}
</div>
</div>
<div class="contact-btn">
<input type="submit" class="fv-btn" value="Modificar">
</div>
</form>
</div>
</div>
{% endblock %}
模板调用:
<a href="{% url 'calendar:detail_event' event.slug %}">{{ event.title }}</a>
这是出现的错误。我该如何解决?
使用关键字参数'{u'event_slug':u'evento_1'}'找不到'detail_event'。尝试过1种模式:[u'calendario / eventos /(?P \ w +)/ $']
提前致谢。
您的方法不起作用,因为您需要event_slug
才能到达创建活动的表单。但是在创建事件之前,event_slug将不存在!
通常的解决方案是单独的“创建”和“更新”视图。为此目的检查generic editing views。例如,您可以导航到/event/new/
以创建一个新事件(没有slug),然后在slug存在后转到/event/(?P<slug>\w+)/
来编辑该事件。
This answer也应该帮助你。