2017-10-16 9 views
0

django-taggit을 태그 모델로 사용하려고합니다. 내가 방법 product.tags.add()을 내가 갖는 호출하면django-taggit는 양식에서 태그 문자열을 가져옵니다.

model.py

class Product(models.Model): 
    product_no = models.IntegerField(primary_key=True) 
    ... 
    tags = TaggableManager(blank=True) 

views.py

def action(request): 
    product = Product() 

    user = User.objects.get(id=request.user.id) 
    product.seller_username = user 
    ... 

    product.save() 

    tag_list = taggit.utils._parse_tags(request.POST['tags']) 
    product.tags.add(*tag_list) 

오류가

제품을 말한다 개체에 기본 키 값이 있어야 태그에 액세스 할 수 있습니다.

많은 솔루션은 product.tags.add() 앞에 product.save()를 넣어서 many-to-many 필드에 액세스하기 전에 pk를 사용할 수있게했다. 나는 그것을 시도하고 여전히 오류가 발생했습니다.

참고 : save() 메소드가 제대로 작동합니다. 제품 목록에 새 개체를 만들고 관리 인터페이스에서 볼 수 있습니다.

+0

저장하기 전에'product.product_no'에 대한 값을 설정하고 있습니까? – solarissmoke

+0

나는 그것을 설정하지 않지만 pk 필드이기 때문에 save() 메소드에 의해 자동으로 설정되어야한다. –

답변

0

내가

product_no = models.IntegerField(primary_key=True) 

product_no = models.AutoField(primary_key=True) 

을 변경해야하고 그것이 고정 있다고 보인다.