繁体   English   中英

图片/创建时发生TypeError-__init __()得到了意外的关键字参数'save'

[英]TypeError at images/create - __init__() got an unexpected keyword argument 'save'

我不知道这是怎么回事。 我正在尝试将其他网站上的图像保存到数据库中,但是在images / create时出现TypeError-__init __()得到了意外的关键字参数'save' images是一个应用程序,create是URL的名称。 这是代码

urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^create/$', views.image_create, name='create'),
] 

views.py

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from .forms import ImageCreateForm

@login_required
def image_create(request):
    if request.method == 'POST':
        # Form is sent
        form = ImageCreateForm(data=request.POST)
        if form.is_valid():
            # Form data is valid
            cd = form.cleaned_data
            new_item = form.save(commit=False)

            # Assign current user to the item
            new_item.user = request.user
            new_item.save()
            messages.success(request, 'Image added successfully')

            # Redirect to the newly created item detail view
            return redirect(new_item.get_absolute_url())
    else:
        # Build form with data provided by the bookmarklet via GET
        form = ImageCreateForm(data=request.GET)

    return render(request, 'images/image/create.html',
    {'section' : 'images', 'form' : form})

和forms.py,其中还包含用于覆盖save()方法的代码

from urllib import request
from django import forms
from django.core.files.base import ContentFile
from django.utils.text import slugify
from .models import Image

class ImageCreateForm(forms.ModelForm):
    class Meta:
        model = Image
        fields = ('title', 'url', 'description')
        widgets = {
            'url' : forms.HiddenInput,
        }

    def clean_url(self):
        url = self.cleaned_data['url']
        valid_extensions = ['jpg', 'jpeg']
        extension = url.rsplit('.', 1)[1].lower()
        if extension not in valid_extensions:
            raise forms.ValidationError('the given URL doesn\'t match valid image extensions')
        return url

    def save(self, force_insert=False, force_update=False, commit=True):
        image = super(ImageCreateForm, self).save(commit=False)
        image_url = self.cleaned_data['url']
        image_name = '{}.{}'.format(slugify(image.title),
        image_url.rsplit('.', 1)[1].lower())

        # Download image from given URL
        response = request.urlopen(image_url)
        image.image.save(image_name, ContentFile(response.read(), save=False))

        if commit:
            image.save()
        return image

请有人帮忙!

ContentFile__init__save任何关键字:

ContentFile(response.read(), save=False)
#                            ^^^ ????

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM