我有以下代码:
class UsersViewSet(viewsets.ModelViewSet):
model = Users
permission_classes = (IsAuthenticated,)
def update(self, request, *args, **kwargs):
return super(UsersViewSet, self).update(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
问题是:
我可以用装饰器制作吗?还是其他什么?
想得到类似的东西:
@permission_classes((IsAuthenticated, AdditionalPermission ))
def update:
pass
Run Code Online (Sandbox Code Playgroud)
但是,如果我编写此代码,则不会通过请求检查第二个权限
当匿名用户尝试 POST 时,我试图让我的应用程序返回 403 错误。现在它返回 201 代码,但不会将帖子保存到数据库中。
问题是我的单元测试失败,因为它正在检查 403 代码。
这是我的看法
from post.models import Post
from post.serializers import PostSerializer
from post.permissions import IsOwnerOrReadOnly, IsOwnerOrAdmin
from rest_framework import viewsets, status
from rest_framework.response import Response
class PostViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list`, `create`, `retrieve`,
`update` and `destroy` actions.
"""
queryset = Post.objects.all()
serializer_class = PostSerializer
# The default will be that anyone can read a post, but only owners can change it
permission_classes = (IsOwnerOrReadOnly,)
def get_permissions(self):
# Both owners and …Run Code Online (Sandbox Code Playgroud) 我在 Django 中设置了一个缓存,如下所示:
from django.core.cache import cache
...
cache.set("cae9ad31b9206a1b5594813b509e1003", "test", timeout=10)
Run Code Online (Sandbox Code Playgroud)
它生成一个这样的密钥:
:1:cae9ad31b9206a1b5594813b509e1003
Run Code Online (Sandbox Code Playgroud)
如何:1:从密钥中删除前缀?
我想在表格中更改label_suffix的颜色。
我只想将“ *”设置为红色,其余的保留为黑色。这是可能的还是我必须更改HTML中的某些内容?
用户名= Forms.CharField(label =“用户名”,label_suffix ='*')
我正在尝试为我的应用制作一个小部件,但它没有更新.我只需要更改textview文本并在按下按钮时打开一个活动,但它们都不起作用......
代码:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.newswidget);
views.setTextViewText(R.id.tvNews, "prueba1");
views.setString(R.id.tvNews, "setText", "prueba3");
Intent intent = new Intent(context, DoctorChatAndroid.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.ibNext, pendingIntent);
for (int i = 0; i < appWidgetIds.length; i++) {
appWidgetManager.updateAppWidget(i, views);
}
}
Run Code Online (Sandbox Code Playgroud)
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/ibNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_media_ff"
android:layout_alignParentRight="true"/>
<ImageButton
android:id="@+id/ibLast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_media_rew"
android:layout_toLeftOf="@id/ibNext"/>
<TextView
android:id="@+id/tvNews"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/nwNoNewAnswer"
android:layout_toLeftOf="@id/ibLast"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
另一个xml:
<?xml …Run Code Online (Sandbox Code Playgroud) 我正在Django制作一个非常基本的BBS系统(如博客).
我已经创建了一个表单,用户可以在其中输入我称之为"正文"的内容,并在forms.py中将其声明为:
body = forms.CharField(widget= forms.Textarea, label="body",required=True)
Run Code Online (Sandbox Code Playgroud)
在models.py中,
body = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我似乎无法编写多行文本...
把它们加起来,
我可以在我的表单中写多行,如:
您好,这是测试
这是样本测试2
333333
但是当我提交它时,我只看到了
您好,这是测试这是示例test2 333333
我的应用程序需要在静态文件夹内的不同文件夹中上传不同的配置文件图像。还有一件事,我没有使用模型,我只想拍摄我在html输入文件中选择的图片并将其复制到特定文件夹。
这是我的文件夹树。我要保存上传的图像MYPROJECTFOLDER/static/profile/<TheUserSpecificFolder>/的位置是我不想使用的位置MEDIA_ROOT,因为在媒体根目录中,我无法为每个用户创建一个特定的文件夹。(我不知道这是否正确,是否可以在/ media /文件夹中为每个用户创建一个特定的文件夹而不使用ImageField或FileField,请告诉我)。
这是我的文件夹树:
MYPROJECTFOLDER
|
|------myproject/
|
|------myapp/
|
|------static
| |-------profile
| |------folder_user1
| |------ uploadedpicture.jpg #Here is where I want to upload
| |------folder_user2
Run Code Online (Sandbox Code Playgroud)
这是我的 uploadpic.html
<form action="{% url 'upload' %}" enctype="multipart/form-data" method="POST">
{% csrf_token %}
<input type="file" name="avatar" accept="image/gif, image/jpeg, image/png">
<button type="submit">Upload</button>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的views.py
from django.shortcuts import render, HttpResponse, redirect
from . import forms
import os
def upload(request):
img = request.FILES['avatar']
#This just create the …Run Code Online (Sandbox Code Playgroud) 在Tornado中使用motor连接mongodb
我创建了一个电机连接
import motor.motor_tornado
from tornado.web import RequestHandler
client = motor.motor_tornado.MotorClient('mongodb://xxx')
class BaseHandler(RequestHandler):
@property
def db(self):
return client['realtime-test']
class Account(BaseHandler):
async def get(self,*args,**kwargs):
all_user = await self.db.account.aggregate([
{'$match': {'status': 1}},
{'$group': {'_id':''}}
])
print(all_user)
Run Code Online (Sandbox Code Playgroud)
当我开始时,我收到此消息:“对象 MotorLatentCommandCursor 不能在 'await' 表达式中使用”
不知道为什么~好像没什么问题
django ×6
python ×3
android ×1
django-forms ×1
html ×1
image-upload ×1
mongodb ×1
python-3.6 ×1
python-3.x ×1
tornado ×1
widget ×1