½É»çÀÌ°ÍÀº Ç¥ÁØ RDBMS µ¥ÀÌÅͺ£À̽º¿Í ÇÔ²² »ç¿ëÇϱâÀ§ÇÑ »ó´çÈ÷ Æ÷°ýÀû ÀÎ °¨»ç ÃßÀû ¾ÛÀÔ´Ï´Ù. | |
Áö±Ý ´Ù¿î·Îµå |
½É»ç ¼øÀ§ ¹× ¿ä¾à
±¤°í
- ƯÇã:
- BSD License
- °¡°Ý:
- FREE
- °Ô½ÃÀÚ À̸§:
- Dj Gilcrease
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://code.google.com/u/@VxhQRlFQBBhHWAl5/
½É»ç ű×
½É»ç ¼³¸í
ÀÌ°ÍÀº Ç¥ÁØ RDBMS µ¥ÀÌÅͺ£À̽º¿Í ÇÔ²² »ç¿ëÇϱâÀ§ÇÑ »ó´çÈ÷ Æ÷°ýÀû ÀÎ °¨»ç ÃßÀû ¾ÛÀÔ´Ï´Ù. AuditÀº Ç¥ÁØ RDBMS µ¥ÀÌÅͺ£À̽º¿Í ÇÔ²² »ç¿ëÇϱâÀ§ÇÑ »ó´çÈ÷ Æ÷°ýÀû ÀÎ °¨»ç ÃßÀû ¾ÛÀÔ´Ï´Ù. NoSQLÀ»À§ÇÑ ¼Ö·ç¼ÇÀ» ã°íÀÖ´Â °æ¿ì °°Àº À̸§À¸·Î ÈǸ¢ÇÑ ÇÁ·ÎÁ§Æ®°¡ ÀÖÁö¸¸ ´Ù¸¥ À̸§À¸·Î ÈǸ¢ÇÑ ÇÁ·ÎÁ§Æ®°¡ ÀÖÁö¸¸ AudeFrom Audit.Models °¡Á® ¿À±â AuditedModel °¡Á® ¿À±â AuditoptionsClass SuboutItem (models.model) : name = models.charfield (max_length = 100) #Notice ¿ì¸®´ÂÀÌ ModelClass yourmodel (auditedmodel)À» °¨»çÇÏ·Á´Â ½Ã½ºÅÛ¿¡ AuditedModelÀ» »ó¼Ó ¹Þ°í ÀÖ½À´Ï´Ù. yourmodel_status = ((0, 'new)) (1, '´ë±â ½ÂÀÎ'), (2, '½ÂÀÎ') À̸§ = models.charfield (max_length = 100) status = models.smallintegerfield (¼±Åà = yourmodel_status) Ç׸ñ = models.manytomanyfield (SupateM) ... # Áö±Ý±îÁö ¸ðµç °ÍÀÌ Á¤»óÀûÀ¸·Î º¸ÀÔ´Ï´Ù. ÀÌÁ¦´Â Audit Config Audit = Auditoption () Audit.add ( 'name', 'general', audit.type.normal) audit.add ( 'status', ''general ', audit)¿¡ µµ´ÞÇÕ´Ï´Ù. type.normal) audit.add ( 'Ç׸ñ', 'Ç׸ñ', audit.m2m) # audit.add (field_name, group, field_type, public = false) # °ø°³¸¦ true·Î ¼³Á¤ÇÏ¸é °ø°³ °¨»ç ÈçÀûÀ» ¸¸µì´Ï´Ù. #that only. PublicÀ¸·Î ¼³Á¤ ÇÑ Çʵ忡 ´ëÇÑ º¯°æ »çÇ× Æ®·¢ # adm adual_name (self) : "" "À» Ãß°¡ÇÏ´Â ¸ðµç Çʵ忡 #changes¸¦ ÃßÀûÇÏ´Â °ü¸®ÀÚ ¸¸ AdminÀÔ´Ï´Ù. ¿©±â¼ ¿øÇϴ´ë·Î ¹«¾ùÀ̵çÁö¸¦ ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù. DB´Â »ç¿ëÇÏÁö ¾ÊÁö¸¸ ÀÚ½ÅÀÇ °¨»ç ±â·Ïº¸±â¿¡¼ ÇÊÅ͸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù. "" "u'yourmodel ({pk}) '. Çü½Ä (pk = self.pk) def audit_status_formatter (ÀÚü, °ª) : "" "audit_field_name_formatterÀÌ Çʵ忡 ´ëÇÑ µ¥ÀÌÅÍ°¡ °¨»ç ±â·Ï¿¡ ÀúÀåµÇ°í °¨»ç ±â·Ï¿¡ Ç¥½ÃµÇ´ÂÁö °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù." "" "IDXÀÇ ¹Ýȯ °ª, v im self.yourmodel_status : IDX == int (°ª ) : vert v def audit_items_formatter (self, value) : °ªÀÌ ¾øÀ¸¸é isinstance (value, models.model) if °ª : item = value else : item = someItem.Objects.get (pk = value) retit u '{ name} '. Çü½Ä (name = item.name) ¿ì¸®´Â °¨»ç¸¦ ¿øÇÏ´Â ¸ðµ¨À» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌÁ¦ ¿ì¸®´Â ±ÍÇÏÀÇ ÁÖ URLs.pyFrom Audit.Bind °¡Á® ¿À±â¸¦ ½ÇÁ¦·Î °¨»ç¸¦ ½ÃÀÛÇϵµ·Ï ½Ã½ºÅÛÀ» ¼³Á¤ÇؾßÇÕ´Ï´Ù. ...¿¡! È®ÀÎ ÀÌÁ¦ ¾ÛÀ» ½ÇÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î ModeL¿¡ ´ëÇÑ º¯°æ »çÇ×Àº °¨»ç ±â·Ï¿¡¼ ÃßÀûµË´Ï´Ù.ÀÌ ¾ÛÀÇ ºä ¶Ç´Â °ü¸® ¼½¼ÇÀÌ ¾øÀ¸¸ç µ¥ÀÌÅ͸¦ Ç¥½ÃÇÏ´Â ¹æ¹ýÀº °³¹ßÀÚ¿¡°Ô ¸Å¿ì °³ÀÎÀûÀÌ¸ç ¿ÞÂÊÀ¸·Î °³¹ßÀÚ¿¡°Ô ÁÂȸÀüÇÏÁö ¾Ê½À´Ï´Ù. Generate.Similar ÇÁ·ÎÁ§Æ® * MongoDB * Django °¨»ç * AuditTrail * Auditlog NoSQL vs SQLNot ¿ì¸® ¸ðµÎ´Â ºñÁî´Ï½º ±ÔÄ¢À̳ª ´Ù¸¥ Á¦¾à Á¶°ÇÀ¸·Î ÀÎÇØ NOSQL °¨»ç ¼Ö·ç¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. MongoDB ¿ë Django °¨»ç´Â SQL ¿ë Django-AuditÀ» ÀÒ¾î¹ö¸° °¨»ç ±â·Ï¿¡¼ Çʵå À¯ÇüÀ» À¯ÁöÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Çʵå À¯ÇüÀÇ ÀÌ·¯ÇÑ ºÐ½ÇÀº Çʵ带 ±â·Ï ÇÒ ¼öÀÖ´Â Çʵå Æ÷¸ËÅÍ¿¡ ÀÇÇØ ¿ÏÈµÇ¾î °¨»ç ±â·ÏÀ» Àд »ç¶÷¿¡°Ô ¾î¶»°Ô Ç¥½Ã ÇÒ ¼öÀÖ´Â ¹æ¹ýÀ» ±â·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ³» ¼Ö·ç¼ÇÀÌ °³¹ßÀÚ°¡ °¢ ¸ðµ¨¿¡ ´ëÇØ ¼³Ä¡ÇÏ°í ±¸¼º ÇÒ ¼ö ÀÖµµ·Ï °³¹ßÀÚ°¡ Á¶±Ý ´õ ¸¹Àº ÀÛ¾÷À» ¼öÇàÇÏ°í MongoDB ¼Ö·ç¼Ç (°¨»ç ±â·ÏÀ» ÇÊ¿ä·ÎÇÏ´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ MongoDB¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î Äڵ带 ³Ê¹« ±íÀÌ º¸ÀÌÁö ¾Ê¾Ò½À´Ï´Ù) ¸éÃ¥ Á¶Ç× ÀÚ¿¬ °¨»ç ¿ä±¸ »çÇ×ÀÇ ÇÑ Å©±â°¡ ¸ðµç ¼Ö·ç¼Ç¿¡ ÀûÇÕÇÑ °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù. ÀÌ ¼Ö·ç¼ÇÀº ³ªÀÇ ¿ä±¸ »çÇ׿¡ ¸ÂÁö ¾Ê°Å³ª ³» ¿ä±¸ »çÇ׿¡ ¸ÂÁö ¾Ê°Å³ªÀ̸¦ ¼öÁ¤ÇÏÁö ¾Ê°Å³ª ¹ö±× ¼öÁ¤À» À§ÇØ ±â²¨ÀÌÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. ³» »ç¿ë¿¡ ÇÊ¿äÇÑ ±â´É Çâ»ó ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¾ÖÇø®ÄÉÀ̼Ç. ³ª´Â ±×°ÍÀ» ¿©±â¿¡¼ ´øÁö°í »ç¶÷µéÀÌ À¯¿ëÇϰųª ±×·¸Áö ¾ÊÀºÁö ¾Ë¾Æ º¸´Â °ÍÀ» ¾Ë¾Ò½À´Ï´Ù. ¿ä±¸ »çÇ× : ¡¤ ÆÄÀ̽ã
½É»ç °ü·Ã ¼ÒÇÁÆ®¿þ¾î