I have a view which should redirect the user to the new tribe that he created. but I don't know how to get the tribe_id for it to work.
views.py
def tribeview(request, tribe_id):
tribe = get_object_or_404(Tribe,pk=tribe_id)
playlist = tribe.playlist_set.all()
context = { 'tribe': tribe, 'playlists':playlist }
return render(request, 'app/tribe.html', context)
class create_tribe(CreateView):
model = Tribe
form_class = TribeForm
template_name = 'app/create_tribe.html'
def form_valid(self, form):
tribe = form.save(commit=False)
tribe.chieftain = self.request.user
tribe.save()
return super().form_valid(form)
def get_success_url(self):
return reverse('app:tribe-view', args={'tribe': self.object.tribe_id})
urls.py
app_name = 'app'
urlpatterns = [
path('', views.index, name='index'),
path('tribe/<int:tribe_id>',views.tribeview,name='tribe-view'),
path('tribe/<int:tribe_id>/playlist/<int:playlist_id>',views.playlistview,name='playlist-view'),
path('new_tribe', login_required(create_tribe.as_view()), name="new-tribe"),
]
models.py
class Tribe(TimeStamped):
name = models.CharField(max_length=200,unique=True)
chieftain = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
tribe_members = models.ManyToManyField(Member)
def __str__(self):
return self.name[:80]
question from:
https://stackoverflow.com/questions/65885488/tribe-object-has-no-attribute-tribe-id 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…