Python django api用于在数据库中创建数据

Python django api用于在数据库中创建数据,python,django,api,django-models,django-rest-framework,Python,Django,Api,Django Models,Django Rest Framework,每个人,我都在尝试编写一个django api来在db中创建数据,下面是我的 models.py views.py我可以从表单ok创建数据 views.py 然而,当谈到api时,,,I jsut失败,下面是我的 api/url.py api/views.py 这是我的错误信息 感谢所有回复我的人api_create方法似乎是完全冗余的,可以安全地删除。您的url.py应该指向views.py中的create\u thing方法 urlpatterns = [ ..... url

每个人,我都在尝试编写一个django api来在db中创建数据,下面是我的

models.py views.py我可以从表单ok创建数据

views.py 然而,当谈到api时,,,I jsut失败,下面是我的

api/url.py api/views.py 这是我的错误信息


感谢所有回复我的人

api_create方法似乎是完全冗余的,可以安全地删除。您的url.py应该指向views.py中的
create\u thing
方法

urlpatterns = [
   .....
    url(r'^productsTbls/create_thing/$',views.create_thing,name='api_create_t'),

]

不需要api_create_thing的原因是,您已经有了使用表单从用户收集数据并将其保存到db的代码。第二点是,使用GET方法接受用户输入不是一个好主意。你应该一直尝试使用POST(创建东西的工具)已经使用过的工具。

你应该显示你的URL;您已经编写了接受9个参数的视图,但是您似乎没有传递任何参数。同时,既然您正在尝试编写API,为什么不使用django rest framework,它正是为此目的而设计的?对,我应该尝试使用django rest framework,,,但是我现在正在阅读它的文档,谢谢,所以我是对的,你的URL没有捕获任何参数,但是你的视图需要9个参数。它们应该来自哪里?您是否按照我的回答中的建议尝试更改URL.py?
def create_thing(request):
    form_class = ProductsTblForm
    # if we're coming from a submitted form, do this
    if request.method == 'POST':
        # grab the data from the submitted form and apply to # the form
        form = form_class(request.POST, request.FILES)
        if form.is_valid():
            # create an instance but do not save yet
            thing = form.save(commit=False)
            # set the additional details
            thing.user = request.user
            thing.slug = slugify(thing.model_number)
            # save the object
            thing.save()
            # redirect to our newly created thing
            return redirect('thing_detail', slug=thing.slug)
    # otherwise just create the form
    else:
        form = form_class()
    return render(
        request,
        'things/create_thing.html',
        {'form': form, 'login_user': request.user}
    )
from django.conf.urls import url, include
from . import views

urlpatterns = [
   .....
    url(r'^productsTbls/create_thing/$',views.api_create_thing,name='api_create_t'),

]
......
from django.shortcuts import render, redirect
from django.views.decorators.csrf import csrf_exempt
........



@csrf_exempt
def api_create_thing( user_id ,model_number,name,release,feature, material,image,suggest,description,):
    p1 = ProductsTbl(user_id = user_id ,model_number = model_number,slug = model_number ,name = name ,release = release ,feature = feature, material = material ,image=image,suggest = suggest,description = description )
    p1.save()
    return redirect('/api/productsTbls/')
urlpatterns = [
   .....
    url(r'^productsTbls/create_thing/$',views.create_thing,name='api_create_t'),

]