小编Ben*_* RR的帖子

Django独立脚本

我试图从另一个python脚本访问我的Django(v1.10)应用程序数据库,并遇到一些麻烦.

这是我的文件和文件夹结构:

store
 store
   __init.py__
   settings.py
   urls.py
   wsgi.py
 store_app
   __init.py__
   admin.py
   apps.py
   models.py
   ...
 db.sqlite3
 manage.py

other_script.py
Run Code Online (Sandbox Code Playgroud)

根据Django的文档,other_script.py看起来像这样:

import django
from django.conf import settings

settings.configure(DEBUG=True)
django.setup()

from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)

但它会生成运行时错误:

RunTimeError: Model class store.store_app.models.MyModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Run Code Online (Sandbox Code Playgroud)

我应该注意到我的INSTALLED_APPS列表包含store_app最后一个元素.

如果相反,我尝试传递这样的配置:

import django
from django.conf import settings
from store.store_app.apps import StoreAppConfig

settings.configure(StoreAppConfig, DEBUG=True)
django.setup()

from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)

我明白了:

AttributeError: type object 'StoreAppConfig has …
Run Code Online (Sandbox Code Playgroud)

python django

19
推荐指数
2
解决办法
1万
查看次数

如何在 Django REST 框架中使用事务?

我希望使用 Django REST 框架来“一起”创建许多模型对象——即在单个事务中。

目标是每个对象仅在事务(成功)结束时才可见。

我怎样才能做到这一点?

python django rest django-models django-rest-framework

10
推荐指数
2
解决办法
6338
查看次数

Python单元测试和多线程

我正在使用python,unittest并希望编写一个测试,启动一些线程并等待它们完成.线程执行一个具有一些unittest断言的函数.如果任何断言失败,我希望测试失败.似乎并非如此.

编辑:最小的可运行示例(python3)

import unittest
import threading

class MyTests(unittest.TestCase):

 def test_sample(self):
  t = threading.Thread(target=lambda: self.fail())
  t.start()
  t.join()

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

输出是:

sh-4.3$ python main.py -v                                                                                                                                                                                                              
test_sample (__main__.MyTests) ... Exception in thread Thread-1:                                                                                                                                                                       
Traceback (most recent call last):                                                                                                                                                                                                     
  File "/usr/lib64/python2.7/threading.py", line 813, in __bootstrap_inner                                                                                                                                                             
    self.run()                                                                                                                                                                                                                         
  File "/usr/lib64/python2.7/threading.py", line 766, in run                                                                                                                                                                           
    self.__target(*self.__args, **self.__kwargs)                                                                                                                                                                                       
  File "main.py", line 7, in <lambda>                                                                                                                                                                                                  
    t = threading.Thread(target=lambda: self.fail())                                                                                                                                                                                   
  File "/usr/lib64/python2.7/unittest/case.py", line 450, in fail                                                                                                                                                                      
    raise self.failureException(msg)                                                                                                                                                                                                   
AssertionError: None                                                                                                                                                                                                                   

ok                                                                                                                                                                                                                                     

---------------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

python unit-testing python-3.x python-unittest

10
推荐指数
2
解决办法
9413
查看次数

Django Rest Framework,具有多个Viewset和Routers,用于同一对象

我无法使用Django Rest Framework为同一个对象定义不同的视图集.以下是基于DRF快速入门重现问题的最小示例.我使用的是python 3.5和最新的DRF.

教程/快速启动/ serializers.py

from django.contrib.auth.models import User
from rest_framework import serializers


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email')

class UserMinimalSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username')
Run Code Online (Sandbox Code Playgroud)

教程/快速启动/ views.py

from django.contrib.auth.models import User
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, UserMinimalSerializer

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer


class UserMinimalViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserMinimalSerializer
Run Code Online (Sandbox Code Playgroud)

教程/ urls.py

from django.conf.urls import url, include
from rest_framework import routers
from …
Run Code Online (Sandbox Code Playgroud)

python django rest django-rest-framework

7
推荐指数
1
解决办法
1367
查看次数

尽管空白 = True 和 null = True,但仍需要 Django ForeignKey 字段

我正在使用 Django REST 框架,并且在多对一MyNodel关系MyOtherModel中有一个相关:

models.ForeignKey(MyModel, related_name="my_other_models", blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

虽然blank=True, null=True,当我尝试发布MyModel没有my_other_models字段的JSON 时,我收到“此字段是必需的”错误。

python django json django-forms django-rest-framework

2
推荐指数
1
解决办法
1224
查看次数