Django, как добавить несколько значений отношения многих ко многим - PullRequest
0 голосов
/ 27 июня 2019

У меня есть список строк из запроса POST, и я хочу создать объект блога со многими значениями хэштегов, с помощью этого метода он только создает объект хештега с 1 значением, а затем переопределяет его, что я могу сделать?

def myForm(request):
tags = HashTags.objects.all()
if request.method == 'POST':
    g = request.POST
    print(g)

    if g.get('title') and g.get('desc') and request.FILES.get('file'):
        obj = Blog.objects.create(
                title = g.get('title'),
                text = g.get('desc'),
                photo1 = request.FILES.get('file'))
        if g.get('VIN'):
            obj.Vin = g.get('VIN')
        if g.getlist('tags'):
            for i in g.getlist('tags'):
                print(i)
                a = HashTags.objects.filter(tag=i)
                obj.hashtag.tag = g.getlist('tags')[0]

        return redirect('blog:main')




class HashTags(models.Model):
tag = models.CharField(max_length=150,unique=True) #unique=True

def __str__(self):
    return self.tag




class Blog(models.Model):
    title = models.CharField(max_length=150)
    date = models.DateTimeField(auto_now_add=True)
    text = models.TextField()
    photo1 = models.ImageField()
    photo2 = models.ImageField(null=True,blank=True)
    videoURL = models.CharField(max_length = 5000)
    hashtag = models.ManyToManyField(HashTags)
    slug = models.SlugField(null=True,blank=True)
    pinVideo =models.BooleanField(null=True,blank=True,default=False)
    pinPhoto =  models.BooleanField(null=True,blank=True,default=False)

фактический: randomtag2
ожидаемый: randomtag1, randomtag2

1 Ответ

0 голосов
/ 28 июня 2019

вы можете использовать добавить для многих ко многим полям

if g.getlist('tags'):
  hashtags = list(HashTags.objects.filter(tag__in=g.getlist('tags')))
  obj.hashtag.add(*hashtags)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...