我正在使用Django REST Framework
request.data = '{"id": "10", "user": "tom"}'
Run Code Online (Sandbox Code Playgroud)
我想"age": "30"在发送它之前添加额外的属性
request.data = new_data
response = super().post(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我有两个问题
为了我的日志记录目的,我想记录我的代码所在的函数的所有名称
谁调用函数无关紧要,我想要声明这一行的函数名称
import inspect
def whoami():
return inspect.stack()[1][3]
def foo():
print(whoami())
Run Code Online (Sandbox Code Playgroud)
目前它打印foo,我想打印 whoami
我曾经使用过在 django rest 2.0 中可用的allow_add_remove=True来编写可嵌套序列化程序,但它在 3.0 中不可用,我很难实现它。
我想做这样的事情
class UserSerialzier():
project = ProjectSerilaizer(many=True, allow_add_remove=True, read_only=False)
class ProjectSerialzier():
ideas = IdeaSerilaizer(many=True, allow_add_remove=True, read_only=False)
sources = SourceSerilaizer(many=True, allow_add_remove=True, read_only=False)
class IdeaSerialzier():
pass
class SourceSerialzier():
pass
Run Code Online (Sandbox Code Playgroud)
现在我不知道如何在 DRF 3.0 中实现 allow_add_remove 行为
我很困惑的是我需要重写create和updateUserSerializer的方法
或者我需要为每个模型创建单独的 IdeaListSerializer
class IdeaListSerializer(serializers.ListSerializer):
def create(self, validated_data):
ideas = [Idea(**item) for item in validated_data]
return Ideas.objects.bulk_create(books)
Run Code Online (Sandbox Code Playgroud) 我正在使用基于 Django 类的视图和休息框架
object = self.get_object()
Run Code Online (Sandbox Code Playgroud)
在详细视图中,如果对象不存在并且我确实收到了类似的请求
/user/10
Run Code Online (Sandbox Code Playgroud)
然后我得到这个回应
{"detail": "not found"}
Run Code Online (Sandbox Code Playgroud)
现在我想自定义该响应
喜欢
try:
obj = self.get_object()
except:
raise Exception("This object does not exist")
Run Code Online (Sandbox Code Playgroud)
但这不起作用
我有这个代码
# Models
class NestedSample(models.Model):
something = models.CharField(max_length=255)
class Sample(models.Model):
thing = models.BooleanField()
nested = models.ForeignKey(NestedSample)
# Serializers
class NestedSampleSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = api_models.NestedSample
class SampleSerializer(serializers.HyperlinkedModelSerializer):
nested = NestedSampleSerializer() # HERE filter delete=false
nested2 = NestedSample2Serializer() # HERE filter deletefalse
class Meta:
model = api_models.Sample
Run Code Online (Sandbox Code Playgroud)
在我看来,我正在覆盖查询集,delete=False但它不适用于嵌套的序列化程序.
目前,我具有访问Django REST Api后端的基本权限,并且可以使用username / passowrd通过创建的shell
我没有使用内置的所有内容的登录页面。
现在,我想从Active Directory中的LDAP验证用户名/ password。
有什么方法不需要为此创建“登录”页面,并且可以在同一位置输入用户名/密码,并且我的用户通过Active Directory进行身份验证。
我是否需要创建一些手动逻辑来获取用户名密码,然后对其进行邮寄,我在想是否可以在不进行诸如django已经提供的基本身份验证之类的工作的情况下获取它
在我的设置文件中,我得到这样的env变量
'NAME': os.environ['PG_DBNAME'], # Database
Run Code Online (Sandbox Code Playgroud)
我正在设置这样的docker文件
-e PG_DBNAME= "mapp"
Run Code Online (Sandbox Code Playgroud)
现在
docker exec ... bashen 登录shell,那么也会设置env变量但是如果我从ssh客户端通过ipaddress和端口号登录,那么我可以登录但是没有设置env变量
我正在用这种方式装饰所有方法
import inspect
def decallmethods(decorator, prefix='test_'):
def dectheclass(cls):
for name, m in inspect.getmembers(cls, inspect.ismethod):
if name.startswith(prefix):
setattr(cls, name, decorator(m))
return cls
return dectheclass
@decallmethods(login_testuser)
class TestCase(object):
def setUp(self):
pass
def test_1(self):
print "test_1()"
def test_2(self):
print "test_2()"
Run Code Online (Sandbox Code Playgroud)
这是有效的,但它适用于顶部,如果我有其他装饰器.
我的意思是
现在的结果是
@login_testuser
@other
def test_2(self):
print "test_2()"
Run Code Online (Sandbox Code Playgroud)
但我想要
@other
@login_testuser
def test_2(self):
print "test_2()"
Run Code Online (Sandbox Code Playgroud) 我前段时间克隆了一个 git repo。克隆 repo 后,它有源文件和一个.git文件夹。现在只有.git文件夹。不知何故,文件被删除了(很久以前)。
这些是.git文件夹的内容:
Mic-Pro:sample.git mic$ ls
HEAD config config_ description hooks info objects refs
Run Code Online (Sandbox Code Playgroud)
git status说该目录不是 git repo。只有那个.git文件夹,有没有办法恢复这些文件?
我无法克隆 repo,因为它不再可用
我有django的格式化程序
FORMAT = "[%(filename)s:%(lineno)s - %(funcName)20s() ] %(message)s"
我得到的文件名是
views.py
现在这很混乱,因为很难看出哪个模块是views.py.
是否有任何在logger格式化程序中获取appname
我有python模块做一些东西,我需要在数据库中保存一些项目.
Currenlt我正在使用原始sql来插入数据.但我想使用django ORM.
我不需要任何网址,视图等我想要的只是我可以创建模型然后应该能够保存它
user.save()
现在我不想在那里有不必要的文件和数据.但我不确定我需要哪些文件.我需要
settings.py
urls.py
views.py
app folder.
Run Code Online (Sandbox Code Playgroud)
是否有可能只是models.py在设置中DATABASE config.
我是否也需要创建一个应用程序