2010-02-07 6 views
0

를 통해 저장되지 나는 Modelform 있습니다Many2ManyField이 Modelforms

class POwner4NewModel(ModelForm): 
    class Meta: 
     model = ProductOwner 
     exclude = ("o_owner","o_owner_desc","o_product_model","o_main_image","o_thumbnail","o_gallery_images","o_timestamp","o_status") 

이 모델의 스키마입니다 :

def save_m_owner(self, request): 
    form = POwner4NewModel(request.POST, request.FILES) 
    form = form.save(commit=False) 
    form.o_owner = request.user 
    form.o_owner_desc = self.product_model.p_description 
    form.o_product_model = self.product_model 
    form.o_status = "unapproved" 
    form.o_main_image = self.product_model.p_main_image 
    form.save() 
: 이것은 내 코드는 양식을 저장하려고

class ProductOwner(models.Model): 
    o_owner = models.ForeignKey(User, verbose_name="Owner") 
    o_owner_desc = models.TextField(verbose_name="Seller Description") 
    o_product_model = models.ForeignKey(ProductModel, verbose_name="Product") 
    o_main_image = models.ImageField(upload_to=settings.CUSTOM_UPLOAD_DIR, verbose_name="Product Main Image", blank=True) 
    o_thumbnail = models.ImageField(upload_to=settings.CUSTOM_UPLOAD_DIR, verbose_name="Product Thumbnail (100x100)px", blank=True) 
    o_gallery_images = models.ManyToManyField(ProductImages, verbose_name="Product Gallery Images", related_name="product_images", blank=True)  
    o_status = models.CharField(max_length=100, choices=PRODUCT_STATUS, verbose_name="Product Status", default="approved") 
    o_timestamp = models.DateTimeField(auto_now_add=True, verbose_name="Date Created") 
    o_internationlisation = models.ManyToManyField(Countries, verbose_name="Available in", related_name="product_countries") 

form.save_m2m()을 추가하려고했지만 양식에 해당 속성이 없다고 말합니다. 이제는 o_internationlisation을 사용하는 필드에서 m2m이 저장되지 않습니다. 내가 여기서 뭘 잘못하고 있는지 잘 모르겠다. 도움을받을 수 있었다. 고마워! 당신은 당신이 다음합니다 (instance.save() 후 물론) form.save_m2m() 사용할 수 있어야 다른 instance = form.save(commit=False) 등과 같은 것을 사용 form = form.save(commit=False)

시도했던 모델 인스턴스와 form을 덮어 때문에

+0

여기서'save_m2m() '을 (를) 호출하려고합니까? 'save()'메소드를 따라야한다. Btw 첫 번째 코드 예제에서 마지막 줄의 끝에'v'가 있습니다 (typo?). –

+0

save(), 오타자, 그 점을 발견해 주셔서 감사합니다.) – nubela

답변

4

형태 save_m2m()이 없습니다.

+0

끝내 주셔서 감사합니다. – nubela