【发布时间】:2018-07-04 05:43:40
【问题描述】:
我有 2 个 django 项目,D1 和 D2。 D1 有一个表调用 T1,D2 有一个表调用 T2。
所以我在 D1 中有一个视图,它对 D2 中的 api 进行 api 调用,并将我在 POST 请求后获得的值保存到 T1 中。但我也希望能够在表 T1 的其他字段中输入数据。
示例:t2 只有book 字段,t1 有book 和author 字段。当 D1 在 D2 中对 t2 执行 post 方法时,它将返回一个 book 值,该值将保存到 t1 但我也希望用户自己输入 author。我该怎么做 ?
这是我的代码
models.py
在第一天:
class T1(models.Model):
book = models.CharField(max_length=10, blank=True, null=True)
author = models.CharField(max_length=10, blank=True, null=True)
在 D2 中
class T2(models.Model):
book = models.CharField(max_length=10, blank=True, null=True)
views.py
@csrf_exempt
def my_django_view(request):
if request.method == 'POST':
r = requests.post('http://127.0.0.1:8000/api/test/', data=request.POST)
else:
r = requests.get('http://127.0.0.1:8000/api/test/', data=request.GET)
if r.status_code == 201 and request.method == 'POST':
data = r.json()
testsave_attrs = {
"book": data["book"],
}
testsave= T1.objects.create(**testsave_attrs)
return HttpResponse(r.text)
elif r.status_code == 200: # GET response
return HttpResponse(r.json())
else:
return HttpResponse('Could not save data')
【问题讨论】:
-
真的,真的,不要从您的应用向其自身发出 POST 请求。
-
那你有什么建议呢?因为它正在使用来自另一个项目的 API
标签: django django-rest-framework