问题是这样的:我正在尝试替换标准的查询集:
queryset: MyModel.objects.all()
Run Code Online (Sandbox Code Playgroud)
在我身上:
def get_queryset(self, username=None):
if username is not None:
user = UserModel.objects.get(username=username)
queryset = MyModel.filter(author=user)
return queryset
else:
queryset = MyModel.objects.all()
return queryset
Run Code Online (Sandbox Code Playgroud)
当我删除"queryset",并只留下"get_queryset"时,会出现一个错误:
AssertionError:
base_name未指定参数,并且无法自动确定视图集中的名称,因为它没有.queryset属性.
一共看起来如此:
class MyModelView(viewsets.ModelViewSet):
permissions_classes = (permissions.IsAuthenticated,)
serializer_class = MyModelleSerializer
def get_queryset(self, username=None):
if username is not None:
user = UserModel.objects.get(username=username)
queryset = MyModel.filter(author=user)
return queryset
else:
queryset = MyModel.objects.all()
return queryset
lookup_field = 'username'
lookup_value_regex = '[a-zA-Z0-9$&(._)\-]+'
Run Code Online (Sandbox Code Playgroud)
那么如何正确覆盖方法?
我试图阻止一些角色被输入,但由于某种原因,禁令不会发生.我哪里错了?
render () {
return <form>
<input
id="username"
type="text"
placeholder="Username"
value={this.state.value}
onKeyPress={this.pale_username.bind(this)}
/>
</form>
}
Run Code Online (Sandbox Code Playgroud)
和功能
pale_username(key) {
if((key.charCode < 48 || key.charCode > 57) //numbers
&& (key.charCode < 65 || key.charCode > 90) // AB
&& (key.charCode < 97 || key.charCode > 122) // ab
&& (key.charCode !== 36) // $
&& (key.charCode !== 38) // &
&& (key.charCode < 40 || key.charCode > 41) // ()
&& (key.charCode < 45 || key.charCode > 46) // -.
&& (key.charCode …Run Code Online (Sandbox Code Playgroud)