0
還有一個功能:MultipleObjectsReturned和ContentType的
def Add_tag(request):
if request.user.is_authenticated():
if request.method == 'POST':
form = TagsForm(request.POST)
if form.is_valid():
# Get value
item_id = form.cleaned_data['item_id']
text = form.cleaned_data['text']
user = request.user
model_type = ContentType.objects.get(app_label='tags', model='Tag')
# Get or create user rating
try:
obj_t = Tag.objects.get(user_id=user.id, content_type_id=model_type.id, object_id=item_id)
except ObjectDoesNotExist:
obj_t = Tag.objects.create(user_id=user.id, content_type_id=model_type.id, object_id=item_id)
obj_t.text = text
obj_t.save()
return HttpResponse(status=200)
型號
class Tag(models.Model):
user = models.ForeignKey(User)
text = models.CharField(max_length=100, blank=True, verbose_name=_('name'))
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
def __unicode__(self):
return '%s %s' % self.user
函數應該只創建一個對象。在第一個電話中,他創建了;第二次更新...第三次(或4/5/6/7 .. 88/99/100 ..隨機)(相同的值)再次創建。
爲什麼創建它?
的MySQL,Django的1,5
函數應該只創建一個對象。在第一個電話中,他創建了第二個更新...第三個(覆蓋最有價值的)再次創建。爲什麼創建它? – Silent
@Silent,因爲你正在創建它們 – user710907
什麼? 第一次調用:value(user_id = 1,content_type_id = 2,object_id = 1) - create; 第二次調用:value(user_id = 1,content_type_id = 2,object_id = 1) - update; 第三次調用:value(user_id = 1,content_type_id = 2,object_id = 1) - 再次創建...; – Silent