#python #django #python-3.x
#python #django #python-3.x
Вопрос:
Мой проект посвящен созданию программного обеспечения для ведения блога с помощью Django. В приложении все работает нормально, но я читал о представлении на основе классов, которое я не до конца понял, поскольку я не в ООП. Я просто хотел преобразовать все мое представление на основе функций в представление на основе классов, но когда я попробовал это, я получил эту ошибку
File "C:UsersDe Stone Of DavidDesktoppythonsecondprojectseblogblogviews.py", line 146
def(self, request, **kwargs):
^
SyntaxError: invalid syntax
вот код для представления на основе функций
views.py
def newPost(request):
deyCat = Category.objects.all()
if request.method =='POST':
myForm = NewPostForm(request.POST, request.FILES)
response_data = {
'SType': 'danger',
'message': "An Error Occured, pls try again later"
}
if request.POST.get('deyHidden') == 'create_hidden':
title = request.POST.get('title')
content = request.POST.get('content')
category_id = request.POST.get('category')
image = request.FILES.get('image')
if myForm.is_valid():
if Posts.objects.create(title=title, content=content, category_id=category_id, image=image, author_id=request.user.id):
response_data = {
'SType': 'success',
'message': "Saved Successfully"
}
return HttpResponse(json.dumps(response_data), content_type="application/json")
elif request.POST.get('deyHidden') == 'category_hidden':
CatNames = request.POST.getlist('CatName[]')
for CatName in CatNames:
Category.objects.get_or_create(CatName=CatName)
response_data = {
'SType': 'success',
'message': "Saved Successfully"
}
return HttpResponse(json.dumps(response_data), content_type="application/json")
context={
'form':NewPostForm(),
'title':'Create Post',
'category': Category.objects.all()
}
return render(request, 'blog/form.html', context)
вот код для представления на основе классов
views.py
class NewPostView(TemplateView):
template_name = 'blog/form.html'
deyCat = Category.objects.all()
def(self, request, **kwargs):
context = {
'form': NewPostForm(),
'title': 'Create Post',
'category': self.deyCat
}
return render(request, self.template_name, context)
def post(self, request, **kwargs):
myForm = NewPostForm(request.POST, request.FILES)
response_data = {
'SType': 'danger',
'message': "An Error Occured, pls try again later"
}
if request.POST.get('deyHidden') == 'create_hidden':
title = request.POST.get('title')
content = request.POST.get('content')
category_id = request.POST.get('category')
image = request.FILES.get('image')
if myForm.is_valid():
if Posts.objects.create(title=title, content=content, category_id=category_id, image=image,
author_id=request.user.id):
response_data = {
'SType': 'success',
'message': "Saved Successfully"
}
return HttpResponse(json.dumps(response_data), content_type="application/json")
elif request.POST.get('deyHidden') == 'category_hidden':
CatNames = request.POST.getlist('CatName[]')
for CatName in CatNames:
Category.objects.get_or_create(CatName=CatName)
response_data = {
'SType': 'success',
'message': "Saved Successfully"
}
return HttpResponse(json.dumps(response_data), content_type="application/json")
пожалуйста, как я могу решить это сообщение об ошибке или что я делаю не так?
Комментарии:
1. Вы определяете функцию, не задавая ей имя.
2. дайте функции
def(self, request, **kwargs):
имя, подобное этомуdef get(self, request, **kwargs):
3. пожалуйста, но как я могу очистить данные из формы перед отправкой их в базу данных
4. По любым дальнейшим вопросам, пожалуйста, закройте этот и откройте другой.
5. да, вы можете очистить форму. это зависит от вида проверки и валидаций, которые вы хотите выполнить, иначе в процессе производства ваш сайт будет испорчен. Как заявил Орельен, этот вопрос выходит за рамки публикации. Вы можете открыть новый вопрос и посмотреть, кто хочет помочь. я тоже здесь для вас
Ответ №1:
Вы должны дать своей функции имя, прежде чем передавать ей аргументы.
Вместо def(self, request, **kwargs)
вы должны написать def my_function(self, request, **kwargs)