как добавить "id" в поле набора форм django - PullRequest
0 голосов
/ 23 февраля 2019

Мне нужно добавить id в моё поле django formsets image Я знаю, как добавить идентификатор в форму модели.Ниже мой пост модель.

Ниже шаблон моей формы

<h2> Create/Update a post</h2>
<form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {% bootstrap_form form %}
                    #More images
    {% bootstrap_formset formset %}    
    <br/><br/><input type="submit" class="btn btn-primary" value="Post"/>

</form>

Ниже приведены мои модели на всякий случай

class Post(models.Model):
    user = models.ForeignKey(User, related_name='posts')    
    title = models.CharField(max_length=250, unique=True)    
    message = models.TextField()    
    post_image = models.ImageField(upload_to='post_images/')

Ниже модель добавляет остальные изображения

class Prep (models.Model): #(Images)
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='post_prep')
    image = models.ImageField(upload_to='post_prep_images/', blank=True, null=True)
    image_title = models.CharField(max_length=100)
    image_description = models.CharField(max_length=250)

Ниже мое представление

@login_required
def post_create(request):
    ImageFormSet = modelformset_factory(Prep, fields=('image',), extra=7, max_num=7,
                                        min_num=2)

    if request.method == "POST":
        form = PostForm(request.POST or None, request.FILES or None)
        formset = ImageFormSet(request.POST or None, request.FILES or None)
        if form.is_valid() and formset.is_valid():
            instance = form.save(commit=False)
            instance.user = request.user
            instance.save()
            post_user = request.user
            for f in formset.cleaned_data:
                try:
                    photo = Prep(post=instance, image=f['image'], image_title=f['image_title'], image_description=f['image_description'])
                    photo.save()
                except Exception as e:
                    break
            return redirect('posts:single', username=instance.user.username, slug=instance.slug)
    else:
        form = PostForm()
        formset = ImageFormSet(queryset=Prep.objects.none())
    context = {
        'form': form,
        'formset': formset,
    }
    return render(request, 'posts/post_form.html', context)

Теперь, как мне добавить id к изображению поля в наборе форм django.У форм.py вы можете видеть только в представлении есть PostForm

...