我的models.py看起来像这样:
class Member(models.Model):
name = models.CharField(max_length=255)
occupation = models.CharField(max_length=255)
class FamilyMember(models.Model):
name = models.CharField(max_length=255)
relation = models.CharField(max_length=255)
member = models.ForeignKey(Member)
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试为成员表单中的家庭成员创建内联表单.为此,我使用inlineformset_factory:
来自django的导入表单来自myapp.models import*来自django.forms.models import inlineformset_factory
from django import forms
from myapp.models import *
from django.forms.models import inlineformset_factory
class MemberForm(forms.ModelForm):
class Meta:
model = Member
fields = [
'name', 'occupation',
]
FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember)
Run Code Online (Sandbox Code Playgroud)
当我运行服务器时,我得到一个奇怪的错误:
"Calling modelformset_factory without defining 'fields' or "
django.core.exceptions.ImproperlyConfigured: Calling >modelformset_factory without defining 'fields' or 'exclude' explicitly is prohibited.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢.
好的,我的 URL(example.com/api/content/12) 以以下格式返回 JSON 数据:
{
"title" : "My blog post",
"body" : "Body",
"data" : "old"
}
Run Code Online (Sandbox Code Playgroud)
我只想简单地更改数据字段。目前,我正在使用 PUT 并且基本上只是替换整个东西,我意识到这是低效的。像这样的东西:
var data = {
"title" : "My blog post",
"body" : "Body",
"data" : "New data"
}
$.ajax({
url: 'http://example.com/api/content/12',
data: data,
error: function() {
console.log('Error');
},
dataType: 'json',
success: function(data) {
console.log('success');
},
type: 'PUT'
});
Run Code Online (Sandbox Code Playgroud)
我如何用 PATCH 做到这一点?我真的不需要发送标题和正文字段,因为它们不会改变。我只想更新数据字段。
我的html文件中有以下svg图像:
<img class="svg" src="my-image-link.svg">
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试使用此css代码更改颜色:
.svg path {
fill: black;
}
Run Code Online (Sandbox Code Playgroud)
然而,没有任何改变.使用css更改svg图像路径颜色的正确方法是什么?谢谢!
在 django admin 中,如果两者之间存在关系,您可以添加、编辑甚至删除另一个模型中的对象。
例如,如果我的代码如下所示:
class Category(models.Model):
...
class Product(models.Model):
...
category = models.ForeignKey(Category)
Run Code Online (Sandbox Code Playgroud)
当我使用 django 管理站点编辑/添加产品时,在类别字段中,我有 3 个按钮来添加/编辑/删除类别。将一个镜头添加到一个新窗口,一旦我提交表单,就会添加类别,关闭窗口,然后我返回到我的产品表单,并显示额外的类别。像这样:
如何使用表单在我的普通应用程序(管理员之外)中执行此操作?
我想存储一个只包含以下格式数据的字典:
{
"key1" : True,
"key2" : True,
.....
}
Run Code Online (Sandbox Code Playgroud)
换句话说,这只是一种检查密钥是否有效的快速方法。我可以通过在名为foo的文件中存储一个 dict 来做到这一点bar.py,然后在我的其他模块中,我可以按如下方式导入它:
from bar import foo
Run Code Online (Sandbox Code Playgroud)
或者,我可以将其保存在一个名为 的pickle 文件中bar.pickle,然后按如下方式将其导入到文件顶部:
import pickle
with open('bar.pickle', 'rb') as f:
foo = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)
哪种方法是理想且更快的方法?
我正在尝试从 S3 存储桶获取图像并将其返回。这是代码:
import base64
import boto3
import json
import random
s3 = boto3.client('s3')
def lambda_handler(event, context):
number = random.randint(0,1)
if number == 1:
response = s3.get_object(
Bucket='bucket-name',
Key='image.png',
)
image = response['Body'].read()
return {
'headers': { "Content-Type": "image/png" },
'statusCode': 200,
'body': base64.b64encode(image).decode('utf-8'),
'isBase64Encoded': True
}
else:
return {
'headers': { "Content-type": "text/html" },
'statusCode': 200,
'body': "<h1>This is text</h1>",
}
Run Code Online (Sandbox Code Playgroud)
当我到达终点时,会返回一个白色小盒子的图像。我知道image.png我的存储桶中存在该图像,当我使用 Web GUI 在浏览器中打开它时,图像会正确加载。我到底做错了什么?如果重要的话,我将图像上传到 S3(从另一个 Lambda)的方式如下:
...
# Prepare image for S3
buffer = io.BytesIO()
my_image.save(buffer, …Run Code Online (Sandbox Code Playgroud) 假设我有两个 React 组件:
import { React } from "react";
import "./styles.css";
function ComponentA() {
...
}
export default ComponentA;
Run Code Online (Sandbox Code Playgroud)
import { React } from "react";
import "./styles.css";
function ComponentB() {
...
}
export default ComponentB;
Run Code Online (Sandbox Code Playgroud)
这两个组件都导入相同的 CSS 文件styles.css。现在假设在我的应用程序中,我导入了这两个组件,因此App.js看起来像这样:
import { ComponentA } from "./ComponentA";
import { ComponentB } from "./ComponentB";
function App() {
return (
<div className="App">
<ComponentA />
<ComponentB />
</div>
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
这里到底发生了什么?我的应用程序是否导入同一个 CSS 文件两次?如果是这样,我是否只在文件上进行导入App.js?
我正在尝试为我的应用程序创建一个REST Api。
应用程序目录中的urls.py如下所示:
urlpatterns = [
url(
r'^professors/(?P<pk>[0-9]+)/reviews/$',
views.ProfessorReviewList.as_view(),
name = 'user-review-list',
)
]
Run Code Online (Sandbox Code Playgroud)
serializers.py
class ProfessorSerializer(serializers.HyperlinkedModelSerializer):
reviews = serializers.HyperlinkedIdentityField(view_name='professor-review-list')
class Meta:
model = Professor
fields = (
'url', 'name', 'name_code', 'university',
'department', 'total_rating_points',
'number_of_reviews', 'rating', 'reviews',
)
class ReviewSerializer(serializers.HyperlinkedModelSerializer):
author = serializers.ReadOnlyField(source='author.username')
class Meta:
model = Review
fields = (
'url', 'author', 'professor',
'created', 'updated', 'rating', 'text'
)
Run Code Online (Sandbox Code Playgroud)
最后,我的views.py看起来像这样:
class ProfessorReviewList(generics.ListCreateAPIView):
queryset = Review.objects.all()
serializer_class = ReviewSerializer
def get_queryset(self):
queryset = super(ProfessorReviewList, self).get_queryset()
return queryset.filter(professor__pk=self.kwargs.get('pk')) …Run Code Online (Sandbox Code Playgroud) 我使用namecheap.com注册了域名和私人电子邮件.我正在尝试通过此私人电子邮件发送电子邮件.但是,我在标题中收到错误.
在我的settings.py中,我有以下设置:
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_HOST_USER = 'contact@mysite.com'
EMAIL_HOST_PASSWORD = 'my password'
EMAIL_PORT = 587
EMAIL_USE_TLS = False
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
Run Code Online (Sandbox Code Playgroud)
我试图通过一个视图发送我的邮件:
send_mail(
'Subject here',
'Here is the message.',
'contact@mysite.com',
['myname@gmail.com'],
fail_silently=False,
)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
SMTP AUTH extension not supported by server.
Run Code Online (Sandbox Code Playgroud)
不知道怎么解决这个问题?谢谢!
假设我有来自两个不同表的两个对象,分别称为Student、 和School。该Student表存储了该表的外键School,因此是多对一的关系。例如:
Student Obj (pk = 251)
- school_pk = 24 (Attribute can be null)
School Obj (pk = 24)
Run Code Online (Sandbox Code Playgroud)
School现在,如果我删除主键为 24 的对象会发生什么?主键为 251 的对象Student在删除过程中是否也被更新,使其属性school_pk被设置为null?
python ×5
django ×4
django-forms ×2
ajax ×1
amazon-s3 ×1
aws-lambda ×1
css ×1
database ×1
django-admin ×1
django-email ×1
foreign-keys ×1
html ×1
http ×1
jquery ×1
json ×1
pickle ×1
reactjs ×1
rest ×1
svg ×1