我有一个django应用程序,允许用户上传视频.它托管在Heroku上,以及存储在S3 Bucket上的上传文件.在从Django app获得预先签名的请求后,我使用JavaScript直接将文件上传到S3.这是由于Heroku 30s请求超时.无论如何,我可以通过Django后端上传大文件而不使用JavaScript并破坏用户体验吗?
我正在构建一个以 UUIDField 作为主键的模型。但我的用例需要。也有一个自动增量字段。Django 提供了一个 AutoField。但是需要有 primary_key=True ,在我的情况下我不想要,因为我使用 UUIDField 作为primary_key。
我尝试创建一个字段并赋予 db_type 'serial' 并添加一个迁移,该迁移改变了在 100000 处重新启动的序列.. 使用 Admin 向数据库添加对象将始终将数字字段存储为空值。如果我删除 null=True。然后保存将失败,因为它需要数字字段的值。
如何在保持 UUIDField 作为主键的同时使数字字段递增?
fields.py
class SerialField(models.Field):
description = _("BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE")
empty_strings_allowed = False
default_error_messages = {
'invalid': _("'%(value)s' value must be an integer."),
}
def __init__(self, *args, **kwargs):
kwargs['blank'] = True
super().__init__(*args, **kwargs)
def db_type(self, connection):
return 'serial'
Run Code Online (Sandbox Code Playgroud)
models.py
from .fields import SerialField
class MyModel(models.Model):
uuid = models.UUIDField(
verbose_name=_("UUID Identifier"),
primary_key=True,
default=uuid.uuid4,
editable=False,
help_text=_("Requried, PrimaryKey none-editable"),
db_index=True, …Run Code Online (Sandbox Code Playgroud) Django 的官方文档列出了开始开发 PostGIS 应用程序所需的 3 个依赖项。他们根据数据库列出一个表。
我使用 docker 进行本地开发,但我很困惑哪些包应该安装在 Django 容器中,哪些包应该安装在 PostgreSQL 容器中。我猜其中一些应该同时存在。
我将非常感谢您对此的帮助。
当用户访问需要登录的URL时.视图装饰器重定向到登录页面.在用户输入用户名和密码后,如何将用户重定向到他尝试访问的页面("下一步")?
def login_view(request):
template = 'pos/login.html'
form = LoginForm
if request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
messages.success(request, "You have logged in!")
return redirect('home')
else:
messages.warning(request, "Your account is disabled!")
return redirect('/login')
else:
messages.warning(request, "The username or password are not valid!")
return redirect('/login')
context = {'form': form}
return render(request, template, context)
@login_required(redirect_field_name='next', login_url='/login')
def bar(request):
template = 'pos/bar.html'
drink = OrderItem.objects.filter(product__catgory__gt=1).order_by('-created')
context …Run Code Online (Sandbox Code Playgroud) 我正在使用 Django 为微服务架构构建身份验证服务。它更像是一个实验,而不是现实世界的实施,以了解更多有关事件溯源的信息。
我确实知道 Django 有一个 ORM,它与框架紧密结合,使用 Flask 将是一种更简单的方法,但我正在尝试找到一种解决方法。
用例非常简单。用户注册后,他会收到一封电子邮件来激活他的帐户。用户再次被激活,我发送一封电子邮件,通知他他的帐户已激活。
根据我的理解,这是在事件源系统中。事件被触发并存储,我们可以获取最新状态并将其存储在数据库中。就我而言,它将是使用 Django ORM 的 Postgres。
我使用 django 中的信号将事件发布到 kafka。pre_save() 信号。然后模型将保存该对象。
如果有尚未实施的更新,请参见下文。我只会发布更新的字段。并更新 Django 中的对象。
有人看到这种方法有任何警告吗?或者在模型的保存方法中实现它会更好吗?
我很想听听您对此的反馈。
# app/services.py
class KafkaService:
def __init__(self):
try:
self.producer = KafkaProducer(bootstrap_servers=settings.KAFKA_BROKERS,
value_serializer=lambda m: json.dumps(m).encode('ascii'))
except KafkaError as ke:
logger.exception(f"Something went wrong creating a kafka producer: {ke}")
self.producer = None
except Exception as ex:
logger.exception(f"Something went wrong creating a kafka producer: {ex}")
self.producer = None
def publish(self, topic, key, data):
if not self.producer:
logger.error(f"Kafka Producer could not …Run Code Online (Sandbox Code Playgroud) django ×5
postgresql ×2
python ×2
amazon-s3 ×1
apache-kafka ×1
cqrs ×1
database ×1
gdal ×1
geodjango ×1
heroku ×1
large-files ×1
login ×1
migration ×1
orm ×1
postgis ×1