Выбор формы в Django - тип виджета - PullRequest
0 голосов
/ 08 мая 2018

Хорошо. Я хочу создать приложение, которое меняет изображение из модели A, и сохранить его как новое для модели B. В форме в шаблоне я хочу выбрать видимые изображения. Как я могу это сделать?

Модель и форма A

модель

from django.db import models


class Photo(models.Model):
    photo = models.ImageField(blank=True, null=True)

форма

from django import forms
from .models import Photo


class Photoform(forms.ModelForm):
    photo = forms.ImageField(required=True)

    class Meta:
        model = Photo
        fields = ('photo',)

Модель и форма B

модель

from django.db import models


class Meme(models.Model):
    meme = models.ImageField(blank=True, null=True)

форма

from django import forms
from Uploader.models import Photo


class Memeform(forms.Form):
    meme = forms.ModelChoiceField(Photo.objects.all(), widget=forms.RadioSelect)

    class Meta:
        model = Photo
        fields = ('meme',)

Шаблон:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form method= "post" enctype="multipart/form-data">
        <p>
            <h2>Your image here</h2>
            {% csrf_token %}
            {{ form.as_p }}
            <button type="submit">Create</button>
        </p>
    </form>
</body>
</html>

Теперь у меня есть виджет RadioSelect, но мне нужно, чтобы на нем были видны изображения.

1 Ответ

0 голосов
/ 08 мая 2018

form.fields["photo"].queryset = Photo.objects.all() в ваших взглядах .. Вы можете сослаться больше здесь .. http://www.wkoorts.com/wkblog/2009/08/10/pre-populate-django-modelform-with-specific-queryset/

...