我正在观看关于React的Pluralsight课程,导师说道具不应该改变.我现在正在阅读一篇关于道具与状态的文章(uberVU/react-guide),它说
道具和状态更改都会触发渲染更新.
在文章的后面它说:
道具(属性的简称)是组件的配置,如果可以的话,它的选项.他们是从上面收到的,不可改变的.
getInitialState吗?我正在尝试翻译Django应用程序.我{% trans %}在模板中创建了一些字符串.但是,当我在我的app文件夹中执行以下命令时,收到一条错误消息:
$ django-admin.py makemessages -l fr
CommandError: Unable to find a locale path to store translations for file __init__.py`
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我正在使用graphviz(点)生成您可以在下面看到的图形.左下角的节点(红色椭圆)因其边缘穿过相邻节点的几个边缘而引起烦恼.有没有办法将节点放置到某个区域?
谢谢你的想法

我正在研究一个小健身追踪器,以便自学Django.我希望随着时间的推移绘制我的体重图,所以我决定使用Python Google Charts Wrapper.Google图表要求您将日期转换为ax坐标.要做到这一点,我想通过从最后一次称重中减去第一次称重然后使用它来计算x坐标来获取数据集中的天数(例如,我可以通过结果得到100并增加x坐标每个y坐标的结果数.)
无论如何,我需要弄清楚如何从彼此中减去Django日期时间对象,到目前为止,我在谷歌和堆栈中都是罢工.我知道PHP,但从来没有掌握OO编程,所以请原谅我的无知.这是我的模型的样子:
class Goal(models.Model):
goal_weight = models.DecimalField("Goal Weight",
max_digits=4,
decimal_places=1)
target_date = models.DateTimeField("Target Date to Reach Goal")
set_date = models.DateTimeField("When did you set your goal?")
comments = models.TextField(blank=True)
def __unicode__(self):
return unicode(self.goal_weight)
class Weight(models.Model):
""" Weight at a given date and time. """
goal = models.ForeignKey(Goal)
weight = models.DecimalField("Current Weight",
max_digits=4,
decimal_places=1)
weigh_date = models.DateTimeField("Date of Weigh-In")
comments = models.TextField(blank=True)
def __unicode__(self):
return unicode(self.weight)
def recorded_today(self):
return self.date.date() == datetime.date.today()
Run Code Online (Sandbox Code Playgroud)
关于如何在视图中进行的任何想法?非常感谢!
我正在尝试创建一个Python包,我有一个像这样的目录结构:
mypkg/
??? __init__.py
??? module1
? ??? x.py
? ??? y.py
? ??? z.txt
??? module2
??? a.py
??? b.py
Run Code Online (Sandbox Code Playgroud)
然后我添加了所有文件MANIFEST.in,当我检查创建的存档时,它有所有文件.
当我做python setup.py install的时候dist-packages/mypkg/module1.我只看到Python文件而不是z.txt.
我有z.txt两个MANIFEST.in和setup.py:
setup (
packages = [
'mypkg',
'mypkg.module1',
'mypkg.module2',
],
package_data = {
'mypkg': ['module1/z.txt']
},
include_package_data = True,
...
)
Run Code Online (Sandbox Code Playgroud)
我尝试添加该文件,data_files但是创建了一个目录/usr/local.我想将它保存在源代码目录中,因为代码使用该数据.
我已经阅读了下面列出的帖子,但我一直对于z.txt在正确的位置之后保持正确位置的方法感到困惑setup.py install.
有没有办法在Python中使用PATCH http方法发出请求?
我尝试使用httplib,但它不接受PATCH作为方法参数.
我有以下项目结构
base
__init.py
settings
__init__.py
settings.py
tests
pytest.ini
test_module.py
Run Code Online (Sandbox Code Playgroud)
我pytest.ini看起来像这样:
[pytest]
#DJANGO_SETTINGS_MODULE =base.settings.settings
Run Code Online (Sandbox Code Playgroud)
我test_module.py看起来像这样:
def test_django():
from base.settings import settings as base_settings
from django.conf import settings as django_settings
assert 3==5
Run Code Online (Sandbox Code Playgroud)
我现在跑的时候:
py.test
Run Code Online (Sandbox Code Playgroud)
它会毫无问题地运行导入,并会在assert 3==5(如预期的那样)引发错误.这告诉我基础已打开sys.path且base.settings.settings可以导入.
现在我test_module.py改为:
def test_django():
from base.settings import settings as base_settings
from django.conf import settings as django_settings
print django_settings.xxx
assert 3==5
Run Code Online (Sandbox Code Playgroud)
我现在跑的时候:
py.test --ds=base.settings.settings
Run Code Online (Sandbox Code Playgroud)
我收到错误:
错误:无法导入设置'base.settings.settings'(是否在sys.path上?):没有名为base.settings.settings的模块.
当我不通过命令行设置设置,但通过pytest.ini文件(通过取消注释行)时,效果相同.
看起来我想念这里的东西???
我是DRF的新手.我阅读了API文档,也许它没有注意到,但我找不到一个方便的方法来做到这一点.
我有一个Answer对象与问题有一对一的关系.
在前端我曾经使用POST方法创建一个发送到api/answers的答案,并将PUT方法更新发送到例如api/answers/24
但我想在服务器端处理它.我只会向api/answers发送POST方法,如果对象存在,DRF将根据answer_id或question_id(因为它是一对一)进行检查.如果是,它将更新现有的,如果不是,它将创建一个新的答案.
我应该在哪里实现它,我无法弄明白.在序列化程序或ViewSet或其他内容中覆盖create?
我的模型,序列化器和视图如下:
class Answer(models.Model):
question = models.OneToOneField(
Question, on_delete=models.CASCADE, related_name="answer"
)
answer = models.CharField(
max_length=1, choices=ANSWER_CHOICES, null=True, blank=True
)
class AnswerSerializer(serializers.ModelSerializer):
question = serializers.PrimaryKeyRelatedField(
many=False, queryset=Question.objects.all()
)
class Meta:
model = Answer
fields = ("id", "answer", "question")
class AnswerViewSet(ModelViewSet):
queryset = Answer.objects.all()
serializer_class = AnswerSerializer
filter_fields = ("question", "answer")
Run Code Online (Sandbox Code Playgroud) 我想为表中的每个对象检索两个字段(它们本身就是聚合)的总和.
以下可能会更好地描述我所追求的但导致Unknown column in field list-Error:
items = MyModel.objects.annotate(
field1=Sum("relatedModel__someField"),
field2=Sum("relatedModel__someField")).extra(
select={"sum_field1_field2": "field1 + field2"})
Run Code Online (Sandbox Code Playgroud)
我也尝试使用F()进行字段查找,但这给了我一个无效的sql语句.
关于如何解决这个问题的任何想法都非常感谢.
我如何调试我的测试?例如,我POST以创建一个条目,并期望它验证并返回一个特定的页面.它适用于浏览器和shell,但测试是唯一失败的(具有讽刺意味!).我想将响应打印到控制台或其他东西,以便我可以读取错误或你有什么.但我只能看到我print在视图中看到的东西.
不确定是否有必要,但这里是有问题的测试代码tests.py:
resp = self.client.post('/meal/invite/',
{'summary': 'Test munch', 'when': now(), 'max_diners': '1', 'description': 'Munchies'}, follow=True)
self.assertEqual(resp.status_code, 200)
self.assertContains(resp, 'Test munch', 1)
self.assertContains(resp, 'You are hosting this meal', 1)
Run Code Online (Sandbox Code Playgroud)
最后的断言是不正确的.如果我将其更改为原始表单页面中显示"字段必需"错误的值,则会通过.我只是看不到我错过的东西.
我有一些其他测试工作,但我只是不知道如何调试这个.
怎么做?
django ×6
python ×6
date ×1
datetime ×1
distutils ×1
dot ×1
graphviz ×1
http ×1
httplib ×1
javascript ×1
patch ×1
pytest ×1
reactjs ×1
setuptools ×1
testing ×1
time ×1
translation ×1
unit-testing ×1