Django 在数据库中保存照片时出错';非类型';对象没有属性';用户';

Django 在数据库中保存照片时出错';非类型';对象没有属性';用户';,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,我有一个使用Usuario的模型,其中foto的配置文件保存在数据库中,因此,为了能够像画廊一样添加更多图像,我创建了另一个名为gallery的模型,我复制了与Usuario模型相同的规范,但他没有将照片保存在数据库中,我不知道我哪里出了问题。 谢谢你的帮助。 我需要Gallery模型来接收外键Usuario 错误: 诺沃美术馆综合酒店/ 列“usuario\u id\u id”中的null值违反了not null约束 详细信息:失败行包含(3,IMG_20180622_101716179_BU

我有一个使用Usuario的模型,其中foto的配置文件保存在数据库中,因此,为了能够像画廊一样添加更多图像,我创建了另一个名为gallery的模型,我复制了与Usuario模型相同的规范,但他没有将照片保存在数据库中,我不知道我哪里出了问题。 谢谢你的帮助。 我需要Gallery模型来接收外键Usuario

错误: 诺沃美术馆综合酒店/ 列“usuario\u id\u id”中的null值违反了not null约束 详细信息:失败行包含(3,IMG_20180622_101716179_BURST006.jpg,eu e meu amor,空)

views.py

    def gallery(request):
        gallery = Gallery.objects.all()
        form = GalleryForm()
        data = {'gallery': gallery, 'form': form}
        return render(request, 'gallery.html', data)   

    def gallery_novo(request):
        if request.method == 'POST':
            form = GalleryForm(request.POST, request.FILES)
            if form.is_valid():
                form.save(user=request.user)
                return redirect('sistema_perfil')
        else:
            form = GalleryForm
        return render(request, 'gallery.html', {'form': form})
models.py

    class Gallery(models.Model):
        gallery = StdImageField( blank=False,  variations={
            'large': (600, 400),
            'thumbnail': (100, 100, True),
            'medium': (300, 200),
        })
        titulo = models.CharField(max_length=50, blank=False)
        usuario_id = models.ForeignKey(User, on_delete=models.CASCADE, blank=False)
forms.py

             class GalleryForm(forms.ModelForm):
          gallery = forms.FileField(
                        widget=forms.ClearableFileInput(attrs={'multiple': 'True'}))
          titulo = forms.CharField()

          class Meta:
                 model = Gallery
                 fields = ( 'gallery', 'titulo')

          def __init__(self, *args, **kwargs):
                 self.request = kwargs.pop('request', None)
                 return super(GalleryForm, self).__init__(*args, **kwargs)


 def save(self, commit=True, user=None):
     form = super(GalleryForm, self).save(commit=False)
     form.usario_id = user
     if commit:
        form.save()
     return form
gallery.html

    {%extends 'bases/base.html' %}
    {% load static %}
    {% load bootstrap %}
    {% load widget_tweaks %}
    {% load crispy_forms_tags %}

    {% block main %}

    <div class="card text-white bg-primary">
        <div class="card-header"><p class="card-text">
            <small class="text-muted">
                <a href="{% url 'sistema_index' %}" class="text-white ">Home /</a>  
                <a  class="text-white">Cadastro</a>

            </small></a></p> Cadastro de Usúario 
        </div>
        <div class="card title  ">
        <div class="card-body text-secondary">  
            <form class="exampleone" action="{%  url 'sistema_gallery_novo'  %}" method="POST" enctype="multipart/form-data" id="form" name="form" validate >
                    {% csrf_token %}

        <div class="form-row"> 
                <div class="form-group col-md-4">


            {{ form.gallery | as_crispy_field }}

        </div>
                <div class="form-group col-md-4">


            {{ form.titulo | as_crispy_field }}

        </div>

        <div class="form-group col-md-4">


        </div>

            </div>


            </div>

                        <button type="submit"  class="btn btn-primary btn-block">Cadastrar</button>

                </form>


        </div>
        </div>
        </div>



    {% endblock %}

    {% block rightcol %}
    {% include 'bases/rightcol.html' %}
    {% endblock %}

    {% block footer %}
    {% include 'bases/footer.html' %}
    {% endblock %}

在我看来,你正在重新发明轮子,django正确的方法是使用:


在我看来,你正在重新发明轮子,django正确的方法是使用:


嗨,我的朋友,很好,你的方式很有效,但我无法调用html中的图像,我发现奇怪的是,图像也没有出现在django aGlad中来帮助你。关于图像。。。这是一个与此无关的新问题。刚发布一个新问题,在发布问题之前请看:祝你好运!我已经问过这个问题了,我很新,但我学得很快[很好,别忘了不要发布不相关的数据,比如所有这些
Usuario
属性(
data\u nascimento
,…)我已经删除了这些模型,谢谢你,朋友,如果你能在新的疑问中帮助我,谢谢你嗨,我的朋友,完美,你的方式工作,但我不能调用html中的图像,我发现奇怪的是,图像也没有出现在django aGlad中来帮助你。关于图像…这是一个新问题,与我们无关在发布问题之前,先发布一个新问题看看:祝你好运!我已经问过这个问题了,我很新,但我学得很快[不错,别忘了不要发布不相关的数据,比如所有这些
Usuario
属性(
data\u nascimento
,…)我已经删除了这些模型,谢谢你的朋友,如果你能帮助我在新的疑问,谢谢你
   url(r'gallery/$', gallery, name='sistema_gallery'),
   url(r'gallery-novo/$', gallery_novo, name='sistema_gallery_novo'),
def gallery_novo(request):
    if request.method == 'POST':
        form = GalleryForm(request.POST, request.FILES)
        if form.is_valid():
            my_novo_gallery = form.save(commit=False)  #save no commit
            my_novo_gallery.user=request.user          #set user
            my_novo_gallery.save()                     #save to db
            return redirect('sistema_perfil')