我的本地环境和我的制作环境不再兼容了。问题是我正在为一个实体,区域使用ID和密钥,其中一些密钥是硬编码的,我无法将其解析出来的硬编码。
class City(db.Model):
region = db.ReferenceProperty()
name = db.StringProperty()
class Region(db.Model):
name = db.StringProperty()
countrycode = db.StringProperty()
vieworder = db.IntegerProperty()
areacode = db.IntegerProperty()
areacodes = db.ListProperty(int)
使用上述模型可以在生产环境中填充许多地区和城市。但是在制作插页时,我被迫对这些生成的ID进行硬编码,例如。
<select onchange="cities(this);document.getElementById('area').display='';" name="region" id="region">
<option value="">«{% trans %}Choose region{% endtrans %}»</option>
<option value="4703187">
Andaman & Nicobar Islands
</option>
<option value="4694186">
Andhra Pradesh
</option>
<option value="4699188">
Arunachal Pradesh
</option>
<option value="4692186">
Assam
</option>
<option value="4702186">
Bihar
</option>
<option value="4698185">
Chandigarh
</option>
<option value="4676188">
Chhattisgarh
</option>
<option value="4691190">
Dadra & Nagar Haveli
</option>
<option value="4704183">
Daman & Diu
</option>
<option value="4699183">
Delhi
</option>
<option value="4702187">
Goa
</option>
<option value="4691189">
Gujarat
</option>
<option value="4700186">
Haryana
</option>
<option value="4703185">
Himachal Pradesh
</option>
<option value="4694187">
Jammu & Kashmir
</option>
<option value="4699189">
Jharkhand
</option>
<option value="4701185">
Karnataka
</option>
<option value="4695189">
Kerala
</option>
<option value="4700189">
Lakshadweep
</option>
<option value="4697186">
Madhya Pradesh
</option>
<option value="4694184">
Maharashtra
</option>
<option value="4700187">
Manipur
</option>
<option value="4703186">
Meghalaya
</option>
<option value="4698184">
Mizoram
</option>
<option value="4692187">
Nagaland
</option>
<option value="4696185">
Orissa
</option>
<option value="4676189">
Pondicherry
</option>
<option value="4693185">
Punjab
</option>
<option value="4701186">
Rajasthan
</option>
<option value="4701187">
Sikkim
</option>
<option value="4701188">
Tamil Nadu
</option>
<option value="4697187">
Tripura
</option>
<option value="4699190">
Uttaranchal
</option>
<option value="4692188">
Uttar Pradesh
</option>
<option value="4700188">
West Bengal
</option>
</select>
我使用WTForms和一些特殊的增强功能,因此将所有硬编码的ID从系统中取出会非常棘手,我是否可以做其他聪明的工作来使本地环境再次工作,是否可以导入区域和城市从生产到本地,以便他们具有相同的ID?如果是,怎么办?对于其ID以与上述类似的方式进行硬编码的类别,我也遇到此问题。
答案 0 :(得分:2)
如果您有硬编码值,那么根据定义,它们将被写入某处,那么为什么不能在测试和生产服务器上使用相同的值列表?或者通过硬编码,你的意思是,存储在数据库中吗?
我认为你的问题可能真的是,如何从生产数据存储区导出数据存储区,并将其加载到本地测试服务器中,在这种情况下,这个相关的StackOverflow问题应该有所帮助:Export from AppEngine database to the local development database?