我正在研究django 1.9项目.
使用Django 1.7.7,登录功能正常,但现在我一直有: registration/login.html : Template Does Not Exist
模板login.html,logout.html出现在'webgui/template/registration /'中,我没有修改它们.
这里有一些我的settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'webgui',
]
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'project.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'NCIS.db'),
}
}
STATIC_URL = '/static/'
LOGIN_REDIRECT_URL = '/login/'
LOGOUT_URL …Run Code Online (Sandbox Code Playgroud) 我是 Kubernetes 的新手,这是我使用它的第一个项目。
我想要做的基本上就是这个。我有一个 Django 应用程序和一个 React 应用程序。我想使用 kubernetes 自己的入口 nginx 库 (kubernetes/ingress-nginx) 使用单个 ingress-nginx 为它们提供服务,React 应用程序在 root 中提供服务,而 Django 在“/api”根中提供服务。我在 Django 设置中定义了 FORCE_SCRIPT_NAME。
同样对于静态文件,我创建了一个单独的持久卷声明并将其安装在 Django 部署文件中。但是当我点击 Django 的管理页面时,不提供静态文件。并且媒体文件也在 api/api/media... 路径中提供,该路径具有额外的 api。在 Kubernetes 中提供静态文件的正确方法是什么?我不想使用像 S3 这样的在线静态根。这是我的 Django 部署 yaml。
apiVersion: apps/v1
kind: Deployment
metadata:
name: django
labels:
deployment: django
spec:
replicas: 1
selector:
matchLabels:
pod: django
template:
metadata:
labels:
pod: django
spec:
volumes:
- name: django-configmap-volume
configMap:
name: django-configmap
- name: static-volume
persistentVolumeClaim:
claimName: static-volume
- name: media-volume
persistentVolumeClaim:
claimName: …Run Code Online (Sandbox Code Playgroud) 我在 Django 1.9.1 中使用 Django Rest Framework 3.3.2 我有 2 个序列化程序,我在另一个序列化程序中使用其中一个。
class VideoSerializer(serializers.ModelSerializer):
current_username = serializers.SerializerMethodField()
is_deletable = serializers.SerializerMethodField()
tagged_users = EachUserSerializer(many=True, read_only=True)
print current_username
comments = CommentSerializer(many=True, read_only=True, context={'current_username': current_username})
place_taken = PlaceLimitedSerializer()
owner_user = EachUserSerializer()
class Meta:
model = Video
fields = ('tagged_users', 'comments', 'place_taken', 'video_id', 'video_url', 'like_count', 'caption', 'date',
'category', 'owner_user', 'current_username', 'is_deletable', )
def get_current_username(self, obj):
self.current_username = self.context['request'].user.username
return self.context['request'].user.username
def get_is_deletable(self, obj):
return obj.is_deletable_by(self.current_username)
class CommentSerializer(serializers.ModelSerializer):
current_username = serializers.SerializerMethodField()
is_deletable = serializers.SerializerMethodField()
is_editable = …Run Code Online (Sandbox Code Playgroud) 版本:
我正在尝试在 AWS Elastic Beanstalk 上运行我的 celery worker。我使用 Amazon SQS 作为 celery 代理。
这是我的settings.py
INSTALLED_APPS += ('djcelery',)
import djcelery
djcelery.setup_loader()
BROKER_URL = "sqs://%s:%s@" % (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.replace('/', '%2F'))
Run Code Online (Sandbox Code Playgroud)
当我在终端上输入下面的行时,它会在我的本地启动工作人员。此外,我创建了一些任务并且它们被正确执行。如何在 AWS EB 上执行此操作?
python manage.py celery worker --loglevel=INFO
Run Code Online (Sandbox Code Playgroud)
我在 StackOverflow 上发现了这个问题。它说我应该在部署后执行脚本的 .ebextensions 文件夹中添加一个 celery 配置。但它不起作用。我很感激任何帮助。安装主管后,我没有做任何事情。也许这就是我所缺少的。这是脚本。
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/run_supervised_celeryd.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
# Get django environment variables
celeryenv=`cat /opt/python/current/env | tr '\n' ',' | sed 's/export …Run Code Online (Sandbox Code Playgroud) django amazon-web-services django-celery amazon-elastic-beanstalk
我正在使用Django 1.9.1开发移动应用程序后端,我实现了关注者模型,现在我想列出用户的所有关注者,但是我目前仍坚持这样做。我也使用Django Rest Framework。
这是我的UserProfile模型
class UserProfile(models.Model):
# Linking UserProfile to User model.
user = models.OneToOneField(User)
city = models.CharField(null=True, max_length=30, blank=True)
gender = models.CharField(null=True, max_length=10, blank=True) # m for male, f for female
# TODO: Fix the picture later.
# picture = models.ImageField(upload_to='profile_images', blank=True)
age = models.IntegerField(null=True, blank=True)
caption = models.CharField(null=True, max_length=40, blank=True)
following_count = models.IntegerField(default=0)
follower_count = models.IntegerField(default=0)
post_count = models.IntegerField(default=0)
like_count = models.IntegerField(default=0)
date = models.DateTimeField(default=datetime.now(), blank=True)
is_protected = models.BooleanField(default=False)
is_facebook_created_user = models.BooleanField(default=False)
facebook_id = models.CharField(default='', blank=True, max_length=350) …Run Code Online (Sandbox Code Playgroud) 我在使用 Django Rest Framework 的 Pagination 类时遇到了问题。
版本:
这是我的自定义分页类。
分页.py:
from rest_framework import pagination
class VideoPagination(pagination.PageNumberPagination):
page_size = 10
page_size_query_param = 'page'
max_page_size = 10000
Run Code Online (Sandbox Code Playgroud)
设置.py:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': ('rest_framework.pagination.PageNumberPagination',),
'PAGE_SIZE': 10,
}
Run Code Online (Sandbox Code Playgroud)
在我的 views.py 中,我有一个 ListAPIView 列出所有视频模型,它使用我的自定义分页器。
视图.py:
class explore(ListAPIView):
serializer_class = ExploreVideoSerializer
pagination_class = VideoPagination
def get_queryset(self):
category = self.kwargs['category']
if category == 'all':
return Video.objects.all().order_by('-date')
else:
return Video.objects.filter(category=category).order_by('-date')
def get_serializer_context(self):
return {"request": self.request}
Run Code Online (Sandbox Code Playgroud)
问题是,当我向这个视图发出请求时,在第一页它给出了我想要的 10 个项目。然后在第二页和第三页上,它给出了不到 10 个项目。
例如,有 16 …
django ×6
python ×3
kubernetes ×1
login ×1
many-to-many ×1
nginx ×1
pagination ×1
serializer ×1