一般的なビューに問題があります。私はアルバムにフォトを追加するフォームを作成しようとしていますが、私はいくつかの写真を追加しようとすることで私のアプリをテストするときに私はアルバムを作成するためにリダイレクトします(それはFotoを作成すると仮定します)。なぜそれが重要なのか、その解決策は何ですか? (たぶん一般的なことは、そのようなディスプレイを行う最善の方法ではない?)いくつかの手がかり?ありがとう!一般的なアルバムのビュー(汎用)アイテムを作成する方法 - URLの指示で問題が発生する
ps。私はそれが正しいurlを得るが、次に "views.DotailView.as_view()、name = 'detail'に行くことに気付く" views.FotoCreate.as_view、name = 'foto-add' "
- これは、詳細なHTMLからです:
<a href="{% url 'albumbum:foto-add' album.pk %}" class="btn btn-default active" role="button">
<span class="fa fa-plus fa-1x" aria-hidden="true"></span> Dodaj element do albumu</a>
のURL:
urlpatterns = [
# /albumbum/
url(r'^$', views.IndexView.as_view(), name='index'),
# /albumbum/<albumbum.id>/
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
# /albumbum/add/
url(r'add/$', views.AlbumCreate.as_view(), name='add'),
# /albumbum/albumbum/2/
url(r'albumbum/(?P<pk>[0-9]+)/$', views.AlbumUpdate.as_view(), name='albumbum-update'),
# /albumbum/albumbum/2/delete
url(r'albumbum/(?P<pk>[0-9]+)/delete/$', views.AlbumDelete.as_view(), name='albumbum-delete'),
# /albumbum/2/add
url(r'^(?P<pk>[0-9]+)/add/$', views.FotoCreate.as_view, name='foto-add'),
-Models
class Album(models.Model):
autor = models.CharField(max_length=250)
nazwa_albumu = models.CharField(max_length=500)
temat = models.CharField(max_length=100)
opis_albumu = models.CharField(max_length=700, default="abc")
album_logo = models.CharField(max_length=1000)
def get_absolute_url(self):
return reverse('albumbum:detail', kwargs={'pk': self.pk})
def __str__(self):
return self.nazwa_albumu + ' - ' + self.autor
class Foto(models.Model):
albumnr = models.ForeignKey(Album, on_delete=models.CASCADE)
nazwa_foto = models.CharField(max_length=250, default='abc')
obraz = models.CharField(max_length=1000, default='abc')
def get_absolute_url(self):
return reverse('albumbum:detail', kwargs={'pk': self.pk})
def __str__(self):
return self.nazwa_foto
とViews.py
from django.views import generic
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.core.urlresolvers import reverse_lazy
from .models import Album, Foto
class IndexView(generic.ListView):
template_name = 'albumbum/index.html'
context_object_name = 'object_list'
def get_queryset(self):
return Album.objects.all()
class DetailView(generic.DetailView):
model = Album
template_name = 'albumbum/detail.html'
class AlbumCreate(CreateView):
model = Album
fields = ['autor', 'nazwa_albumu', 'temat', 'album_logo']
class AlbumUpdate(UpdateView):
model = Album
fields = ['autor', 'nazwa_albumu', 'temat', 'album_logo']
class AlbumDelete(DeleteView):
model = Album
success_url = reverse_lazy('albumbum:index')
class FotoCreate(CreateView):
model = Foto
fields = ['nazwa_foto', 'obraz']
def form_valid(self, form):
album = Foto.objects.get(pk=self.kwargs.get('pk'))
form.instance.album = album
return super(FotoCreate, self).form_valid(form)