Bir 'through' sınıf tablosu içeren bir m2m veri kaydetme konusunda sorun yaşıyorum. Seçili tüm üyeleri (formda seçili) içinden tabloya kaydetmek istiyorum. Ancak, görünümdeki 'geçiş' tablosunu nasıl başlatacağımı bilmiyorum.Django m2m form "içinden" kaydet tablo
kodum:
class Classroom(models.Model):
user = models.ForeignKey(User, related_name = 'classroom_creator')
classname = models.CharField(max_length=140, unique = True)
date = models.DateTimeField(auto_now=True)
open_class = models.BooleanField(default=True)
members = models.ManyToManyField(User,related_name="list of invited members", through = 'Membership')
class Membership(models.Model):
accept = models.BooleanField(User)
date = models.DateTimeField(auto_now = True)
classroom = models.ForeignKey(Classroom, related_name = 'classroom_membership')
member = models.ForeignKey(User, related_name = 'user_membership')
ve görünümde
:def save_classroom(request):
classroom_instance = Classroom()
if request.method == 'POST':
form = ClassroomForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.user = request.user
new_obj.save()
membership = Membership(member = HERE SELECTED ITEMS FROM FORM,classroom=new_obj)
membership.save()
nasıl Üyelik tablo için üyelik initialize gerektiğini doğru doldurulması?
bu kadardı! Python için oldukça yeni olduğumdan, gerçekten bazı baş ağrıları yarattı. Thnx çok! – dana
Soru: Sınıfın yaratıcısını üye olarak eklemek istiyorum (required.user) ve bu listeye nasıl yapabilirim? Teşekkürler! – dana
Amacınızı aldığımdan emin değilim. Kullanıcı ve sınıf (üyelik = Membership.objects.create (üye = request.user, sınıf = new_obj) ) arasında yeni bir bağlantı oluşturmak için yeni üyelik nesnesi (döngü dışında) oluşturabilir veya ekstra member_id (POST içinde request.user) kimliği ve varolan kodu (döngü için) kullanarak kullanıcı sınıfı ilişkisi oluşturulacaktır. İkinci seçenek için, formunuzdaki bazı gizli alanlarda request.user.id dosyasını saklamanız gerekir. – dzida