在Django表单中,如何将字段设置为只读(或禁用)?
当表单用于创建新条目时,应启用所有字段 - 但是当记录处于更新模式时,某些字段必须是只读的.
例如,在创建新Item模型时,所有字段都必须是可编辑的,但在更新记录时,有没有办法禁用该sku字段以使其可见,但无法编辑?
class Item(models.Model):
sku = models.CharField(max_length=50)
description = models.CharField(max_length=200)
added_by = models.ForeignKey(User)
class ItemForm(ModelForm):
class Meta:
model = Item
exclude = ('added_by')
def new_item_view(request):
if request.method == 'POST':
form = ItemForm(request.POST)
# Validate and save
else:
form = ItemForm()
# Render the view
Run Code Online (Sandbox Code Playgroud)
班级ItemForm可以重复使用吗?ItemForm或者Item模型类需要进行哪些更改?我是否需要编写另一个类" ItemUpdateForm"来更新项目?
def update_item_view(request):
if request.method == 'POST':
form = ItemUpdateForm(request.POST)
# Validate and save
else:
form = ItemUpdateForm()
Run Code Online (Sandbox Code Playgroud) 我有一个值数组,从程序的不同部分传递给我的函数,我需要存储以供以后处理.因为我不知道有多少次之前,它是时间来处理数据我函数将被调用做什么,我需要一个动态的存储结构,所以我选择了一个std::vector.我不想push_back单独对所有值进行标准循环,如果我可以使用类似的东西复制它,那将是很好的memcpy.
在Django中,假设我有一个QuerySet,我将迭代并打印结果,那么计算对象的最佳选择是什么?len(qs)或qs.count()?
(还假设在同一次迭代中计算对象不是一个选项)
我有一个测试文件(仅用于链接测试),其中我使用我自己的/ 库调用来重载new/ delete运算符.但是在链接静态库时,我一直得到"未定义的引用"错误,即使我改变了和的顺序.但是一切都适用于连接这个库的其他C程序.我对这个问题很困惑,并且感谢任何线索.mallocfreelibxmalloc.atest.o-lxmalloc
错误消息:
g++ -m64 -O3 -I/usr/include/ethos -I/usr/include/nacl/x86_64 -c -o test.o test.cpp
g++ -m64 -O3 -L. -o demo test.o -lxmalloc
test.o: In function `operator new(unsigned long)':
test.cpp:(.text+0x1): undefined reference to `malloc(unsigned long)'
test.o: In function `operator delete(void*)':
test.cpp:(.text+0x11): undefined reference to `free(void*)'
test.o: In function `operator new[](unsigned long)':
test.cpp:(.text+0x21): undefined reference to `malloc(unsigned long)'
test.o: In function `operator delete[](void*)':
test.cpp:(.text+0x31): undefined reference to `free(void*)'
test.o: In function `main':
test.cpp:(.text.startup+0xc): undefined reference …Run Code Online (Sandbox Code Playgroud) 如果我有一个test.py驻留在某个目录中的文件,我怎样才能找到test.py它所在的目录?os.path.curdir将提供当前目录,但不提供文件所在的目录.如果我test.py从某个目录调用foo,os.curdir将返回foo但不返回路径test.py.
谢谢.
我有一个小的单面消息发送器,当我在代码中指定要连接的IP时工作,但是,我无法允许套接字接受来自任何IP的连接.这是问题的界限.
mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2727 ) )
Run Code Online (Sandbox Code Playgroud)
该''是本地主机,和它的作品,如果我手动输入IP,例如'192.168.1.106',但是,我怎么能离开它向所有人开放?或者我使用错误的连接类型?
我一直在constexpr研究C++ 的新功能,但我并不完全理解它的必要性.
例如,以下代码:
constexpr int MaxSize()
{
...
return ...;
}
void foo()
{
int vec[MaxSize()];
}
Run Code Online (Sandbox Code Playgroud)
可以替换为:
int MaxSize()
{
...
return ...;
}
static const int s_maxSize = MaxSize();
foo()
{
int vec[s_maxSize];
}
Run Code Online (Sandbox Code Playgroud)
更新
第二个例子实际上不是标准的ISO C++(感谢几个用户指出这一点),但某些编译器(例如gcc)支持它.因此,这不是const使程序有效,而是gcc支持这种非标准功能的事实.(据我所知,只有当数组被定义为函数或方法的本地数据时才有可能,因为在编译时必须知道全局数组的大小.)如果我编译没有选项-std=c++98 -pedantic-errors,甚至代码
int MaxSize()
{
return 10;
}
void foo()
{
int vec[MaxSize()];
}
Run Code Online (Sandbox Code Playgroud)
将使用gcc编译.
因此,考虑到目前为止的反馈(以及我在同一时间进行的一些进一步阅读),我将尝试重新解释我的问题.
我const大量使用关键字.随着const我可以定义有其整个生命周期内某一特定值的常数.可以使用任何表达式初始化常量,该表达式被计算一次,即创建常量时.对于这些情况,我认为这constexpr是非常无用的:它将引入一个非常小的优化,因为定义常量值的表达式将在编译时而不是运行时计算.每次我需要一个复杂初始化的运行时常量时我都会使用关键字const.
因此constexpr,在我们需要在编译时初始化常量的情况下,可能会派上用场.一个示例是矢量定义:标准不支持在运行时定义大小.另一个示例是具有一个或多个非类型参数的模板.
在这种情况下,我通常使用宏:
#define MAX_SIZE (10)
void foo()
{
int …Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以告诉Django runserver覆盖settings.py文件中的单个变量?
我很乐意打电话给:
python manage.py runserver 0.0.0.0:8000 Debug=False
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
动机:有一个特定的站点,有数百个数据库查询来显示或保存特定的页面,我希望能够快速关闭调试,而无需编辑我的设置文件(有可能被遗忘).
我正在阅读C++入门书,完全不理解一行:
using int_array = int[4];
typedef int int_array[4]; // This line
for (int_array *p = ia; p != ia + 3; ++p) {
for (int *q = *p; q != *p + 4; ++q)
cout << *q << ' '; cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
好的typedef是一样的using.这是否意味着int[4][4]现在int以及如何理解这一点?什么类型int_array的for循环?
谢谢
我放
set(CMAKE_CXX_COMPILER "/usr/bin/clang.exe")
Run Code Online (Sandbox Code Playgroud)
运行/清洁,运行/构建.
我收到链接错误,如:
undefined reference to `std::ios_base::Init::~Init()'
: undefined reference to `__gxx_personality_v0'
Run Code Online (Sandbox Code Playgroud)
据推测,还有其他变量需要改变.尝试添加-lstdc++到CMAKE_CXX_FLAGS,但没有什么不同.
例如,是否存在CLion方式而不是CMake方式?
谢谢.