![](/img/trans.png)
[英]TypeError at '' __init__() got an unexpected keyword argument ''
[英]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.