0

Django テンプレート システムで自分の変数にアクセスする方法を見つけようとしています。私のmodels.py:

class SubCategory(models.Model):
   name = models.CharField(max_length=50, unique=True)
   category = models.ManyToManyField(Category)

私の見解:

from myapp.models import Category, SubCategory

def create_in_category(request, slug):
   category = get_object_or_404(Category, slug=slug)
   subcategory = SubCategory()

   ad = Ad.objects.create(category=category, subcategory=subcategory, user=request.user,
                       expires_on=datetime.datetime.now(), active=False)
   ad.save()
   return redirect('myapp_create_ad_edit', pk=ad.pk)
...

class AdCreationEditView(AdEditView):
   def get_queryset(self):
       qs = super(AdEditView, self).get_queryset()
       return qs.filter(active=False, user=self.request.user)

   def get_success_url(self):
       return reverse('classifieds_create_ad_preview',
                      kwargs=dict(pk=self.object.pk))

   def get_context_data(self, **kwargs):
       context = super(AdCreationEditView, self).get_context_data(**kwargs)
       context['create'] = True
       return context

{{ subcategory }}テンプレートでアクセスできるようにしたいのですが、エラーが発生します:'subcategory' is an invalid keyword argument for this functionビューのエラーが原因です。どんな提案でも大歓迎です。ありがとうございました

4

1 に答える 1

0

そのエラーはテンプレートから発生したものではなく、質問とは何の関係もありません。subcategoryは ManyToMany 関係であり、オブジェクトのインスタンス化でそれらを定義することはできません。これは、そのような関係がリンク テーブルを介して実装される方法のためです。まず、Category オブジェクトと Subcategory オブジェクトの両方を保存する必要があります。

オブジェクトをテンプレートに渡す方法に関する実際の質問に対する答えは、チュートリアルで完全に回答されています。

于 2012-06-30T20:03:57.847 に答える