Как заставить мой классный вид работать в Django - PullRequest
0 голосов
/ 29 марта 2019

Мой проект о создании программного обеспечения для блогов с Django.В приложении все работает нормально, но я читал об основанном на классе представлении, которое я не полностью понял, так как я не в ООП.Я просто хотел преобразовать все свои функциональные представления в классовые представления, но когда я попробовал это, я получил эту ошибку

  File "C:\Users\De Stone Of David\Desktop\python\second\projects\eblog\blog\views.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")

pls, как я могу решить это сообщение об ошибке или что я делаю не так?

1 Ответ

0 голосов
/ 29 марта 2019

Вы должны дать своей функции имя перед передачей ей аргументов.

Вместо def(self, request, **kwargs) вы должны написать def my_function(self, request, **kwargs)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...